வழிகாட்டிகள் · 08
செயல்திறனும் இயக்கமும்
Animated ஃப்ரேம்தோறும் வேலையை எப்படித் தவிர்க்கிறது, ஒரு உறுப்பு எந்தப் பாதையைப் பயன்படுத்துகிறது என்று எப்படிச் சரிபார்ப்பது, முகப்புப் பக்க எண்கள் எப்படி அளக்கப்பட்டன.
மூன்று இயக்கப் பாதைகள்
Animated ஒவ்வொரு பண்புக்கும் ஒரு பாதையைத் தேர்ந்தெடுக்கிறது. பாதையுடன் API மாறுவதில்லை.
| பாதை | எப்போது | ஃப்ரேம்தோறும் வேலை |
|---|---|---|
| browser | Animated.<tag> உறுப்புகளில் வரையறுக்கப்பட்ட transform, opacity மோஷன், spring-கள் உட்பட | பக்கத்தின் JavaScript-இல் எதுவும் இல்லை |
| css | பகிரப்பட்ட CSS keyframes மூலம் உலாவி வெளிப்படுத்தக்கூடிய துல்லியமான வளைவுகள் | பக்கத்தின் JavaScript-இல் எதுவும் இல்லை |
| js | சாதாரண style மாறிகள், உள்ளீடு, தனிப்பயன் கணக்கீடு, sequence எல்லைகள் | மதிப்புக்கு ஒரு எழுதுதல், React ரெண்டர் இல்லை |
ஒரே மதிப்பு, பல உறுப்புகள்
ஹூக் மதிப்பின் வழித்தோன்றல்கள் calc() கோவைகள். scope உடன், ஃப்ரேம்தோறும் ஒரே மாறி எழுதுதல் கொள்கலனில் உள்ள ஒவ்வொரு உறுப்பையும் இயக்குகிறது.
எடுத்துக்காட்டு தயாராகிறது…
பாதையைச் சரிபாருங்கள்
inspect(element) உண்மையான இயக்கத்தின்போது ஒவ்வொரு அனிமேட் பண்புக்குமான driver-ஐயும் fallback காரணத்தையும் தருகிறது.
import { inspect } from '@kkwaenggwari/animated';
console.table(inspect(element));
// property driver reason
// transform browser null
// opacity css null
// --level js css-variable-requires-jsமுதல் ஃப்ரேமிலிருந்தே தொடங்குகிறது
மோஷனைத் தொடங்கும் பணி — hydration அல்லது பெரிய commit போல — main thread-ஐ வேலையாக வைத்திருக்கும்போது, ஏற்கெனவே முன்னேறியதாகத் தோன்றாமல், அந்த வேலை முடிந்ததும் மோஷன் மீண்டும் தொடங்குகிறது. மறைந்த பக்கத்தில் தொடங்கியது பின்னணியில் முடிகிறது.
முகப்புப் பக்க எண்கள் எப்படி அளக்கப்பட்டன
ஒவ்வொரு சூழ்நிலையும் ஒரு warm-up-க்குப் பிறகு புதிய பக்கத்தில் இயக்கப்பட்டது; மூன்று மாதிரிகள் பதிவுசெய்யப்பட்டு இடைநிலை மதிப்பு தெரிவிக்கப்பட்டது. JavaScript நேரம் என்பது மோஷன் இயங்கும்போது animation-frame callback-களுக்குள் செலவான நேரம். ஒவ்வொரு அணுகுமுறைக்கும் உலாவி செய்யும் style, layout, paint இதில் இல்லை; அதனால் இது மொத்த CPU அல்லது ஃப்ரேம் வீதத்தின் அளவீடு அல்ல.
உலாவி இயக்கம் layout, paint, compositing அல்லது நினைவகத்தை இலவசமாக்குவதில்லை. நீங்கள் ஆதரிக்கும் சாதனங்களில் உண்மையான திரையை அளவிடுங்கள்.
| சூழ்நிலை | அமைப்பு | முடிவு |
|---|---|---|
| 400 Animated.div elements move translateX and fade in (timing, 1800 ms) | seed/pose/tempo on Animated.div; 800 browser animations | 0.00 ms |
| One useAnimated value drives 10,000 elements in ordinary style (loop, 1200 ms) | transform and opacity as calc() of one CSS variable written on a scope element | 0.13 ms |
2026-09-28 · Chrome 153.0.8010.52 (headless) · Windows_NT x64 · Intel(R) Core(TM) i7-14700K