গাইড · 08
পারফরম্যান্স আর প্লেব্যাক
Animated কীভাবে প্রতি ফ্রেমের কাজ এড়ায়, এলিমেন্ট কোন পথ ব্যবহার করে তা কীভাবে দেখবেন, আর হোম পেজের সংখ্যা কীভাবে মাপা হয়েছে।
প্লেব্যাকের তিনটি পথ
Animated প্রতিটি প্রপার্টির জন্য পথ বাছে। পথের সঙ্গে API বদলায় না।
| পথ | কখন | প্রতি ফ্রেমের কাজ |
|---|---|---|
| browser | Animated.<tag> এলিমেন্টে transform আর opacity-র সীমিত গতি, স্প্রিংসহ | পাতার JavaScript-এ কিছু না |
| css | নিখুঁত বক্ররেখা যা ব্রাউজার ভাগ করা CSS কীফ্রেম দিয়ে প্রকাশ করতে পারে | পাতার JavaScript-এ কিছু না |
| js | সাধারণ স্টাইল ভেরিয়েবল, ইনপুট, নিজের হিসাব আর ক্রমের সীমানা | প্রতি মানে একটি লেখা, কোনো React রেন্ডার নেই |
একটি মান, অনেক এলিমেন্ট
হুকের মান থেকে তৈরি সবকিছু calc() এক্সপ্রেশন। scope দিলে প্রতি ফ্রেমে একটি ভেরিয়েবল লেখা কন্টেইনারের সব এলিমেন্ট চালায়।
উদাহরণ প্রস্তুত হচ্ছে…
পথ দেখুন
inspect(element) সত্যিকারের চালনার সময় প্রতিটি অ্যানিমেটেড প্রপার্টির driver আর বিকল্প পথের কারণ ফেরত দেয়।
import { inspect } from '@kkwaenggwari/animated';
console.table(inspect(element));
// property driver reason
// transform browser null
// opacity css null
// --level js css-variable-requires-jsপ্রথম ফ্রেম থেকে শুরু
গতি শুরু করা কাজ যখন মূল থ্রেড ব্যস্ত রাখে, যেমন হাইড্রেশন বা বড় commit, তখন গতি আগে থেকেই এগিয়ে থাকা দেখানোর বদলে সেই কাজ শেষ হলে আবার শুরু হয়। লুকানো পাতায় শুরু হওয়া গতি পটভূমিতে শেষ হয়।
হোম পেজের সংখ্যা কীভাবে মাপা হয়েছে
প্রতিটি পরিস্থিতি একটি ওয়ার্ম-আপের পরে নতুন পাতায় চলেছে, তিনটি রেকর্ড করা নমুনা সহ, আর মধ্যমা জানানো হয়েছে। JavaScript সময় হলো গতি চলাকালীন animation-frame callback-এর ভেতরে কাটানো সময়। এতে স্টাইল, লেআউট আর পেইন্ট নেই, যা ব্রাউজার প্রতিটি পদ্ধতিতেই করে, তাই এটি মোট CPU বা ফ্রেম রেটের মাপ নয়।
ব্রাউজার প্লেব্যাক লেআউট, পেইন্ট, কম্পোজিটিং বা মেমরিকে বিনামূল্যে করে না। যেসব ডিভাইস সমর্থন করেন সেগুলোতে সত্যিকারের স্ক্রিন মাপুন।
| পরিস্থিতি | সেটআপ | ফলাফল |
|---|---|---|
| 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