হিরো বেঞ্চমার্ক হল বেঞ্চমার্কের একটি সেট যা উচ্চ-স্তরের অ্যাপ ব্যবহারকারীর অভিজ্ঞতা কভার করে, যেমন ওপেন-সোর্স Pokedex অ্যাপে অ্যাপ স্টার্টআপ বা স্ক্রোল করা।
- স্টার্টআপ হিরো বেঞ্চমার্ক: অ্যাপ খোলা থেকে শুরু করে কন্টেন্ট দেখানো পর্যন্ত সময় ট্র্যাক করা।
- স্ক্রল হিরো বেঞ্চমার্ক: ছবি সহ লেজি গ্রিডের স্ক্রলিং পারফর্ম্যান্স পরিমাপ করা।
টেস্ট সেট-আপ
- অ্যাপ বেছে নেওয়া: আমরা ওপেন-সোর্স Pokedex অ্যাপ ব্যবহার করে এই পরীক্ষাগুলি করেছি, এর ভিউ-ভিত্তিক এবং কম্পোজ-ভিত্তিক ভার্সনের তুলনা করেছি। অ্যাপটি বাস্তব-জগতের পরিস্থিতি উপস্থাপন করার জন্য বেছে নেওয়া হয়েছে এবং এটি Compose টিম ডেভেলপ করেনি।
- হার্ডওয়্যার সেট-আপ: Android 17 (API 37) অপারেটিং সিস্টেম সহ Pixel 6 ডিভাইসে বেঞ্চমার্ক রান করা হয়েছে যেখানে CPU ও GPU লক করা ছিল। Compose 1.12-এর আগে, Pixel 3a-তে বেঞ্চমার্ক করা হয়েছিল। Compose 1.12 অনুযায়ী, হিরো বেঞ্চমার্কের জন্য স্ট্যান্ডার্ড পারফর্ম্যান্স বেসলাইন হিসেবে Pixel 6 ব্যবহার করা হয়।
- বিল্ড সেট-আপ: বেঞ্চমার্কগুলি R8 চালু করা রিলিজ মোডে তৈরি অ্যাপ ব্যবহার করে। জাস্ট-ইন-টাইম (JIT) কম্পাইলেশন থেকে হওয়া অস্থিরতা কমাতে অ্যাপটি সম্পূর্ণভাবে প্রি-কম্পাইল করা হয়েছে।
- ফলাফল বেছে নেওয়া: সবচেয়ে খারাপ পরিস্থিতি বিশ্লেষণ করার জন্য, বেঞ্চমার্ক ফলাফল থেকে চরম আউটলায়ার এবং অপ্রতিনিধিত্বমূলক নয়েজ বাদ দেওয়া হয়েছে। তারপর, সর্বোচ্চ-সীমা পারফর্ম্যান্স ডেটার মধ্যক মান বেছে নিয়ে একটি বেসলাইন তৈরি করা হয়
স্টার্টআপ হিরো বেঞ্চমার্ক
স্টার্টআপ পরিমাপ করতে, আমরা PokedexStartupBenchmark ব্যবহার করেছি। PokedexStartupBenchmark
Pokedex অ্যাপ ব্যবহারকারীর কাছে দৃশ্যমান হতে যে সময় লাগে তা পরিমাপ করে।
অ্যাপ লঞ্চ তিনটি অবস্থার মধ্যে যেকোনও একটিতে হতে পারে: কোল্ড স্টার্ট, ওয়ার্ম স্টার্ট, বা হট স্টার্ট। প্রতিটি স্ট্যাটাস, ব্যবহারকারীর কাছে অ্যাপটি দৃশ্যমান হতে কত সময় লাগে তার উপর প্রভাব ফেলে। কোল্ড স্টার্টের ক্ষেত্রে, অ্যাপটি একদম শুরু থেকে চালু হয়। এই বেঞ্চমার্কে, আমরা কোল্ড স্টার্ট অবস্থায় অ্যাপ লঞ্চের পারফর্ম্যান্স পরিমাপ করি। আমরা সাজেস্ট করি যে আপনি সবসময় কোল্ড স্টার্টের অনুমান অনুযায়ী অ্যাপ অপ্টিমাইজ করুন। এটি করলে ওয়ার্ম ও হট স্টার্টের পারফর্ম্যান্সও উন্নত হতে পারে।
অ্যাপ স্টার্টআপের সময় পরিমাপ করার জন্য আমরা যে মেট্রিক ব্যবহার করি তা হল প্রাথমিক ডিসপ্লে দেখানোর সময় এবং সম্পূর্ণ ডিসপ্লে দেখানোর সময়।
প্রাথমিক ডিসপ্লেতে লাগা সময়
টাইম টু ইনিশিয়াল ডিসপ্লে (TTID) কোনও অ্যাপের প্রথম ফ্রেম তৈরি করতে কত সময় লাগে তা পরিমাপ করে, যার মধ্যে কোল্ড স্টার্টের সময় প্রসেস ইনিশিয়ালাইজেশন, কোল্ড বা ওয়ার্ম স্টার্টের সময় অ্যাক্টিভিটি তৈরি করা এবং প্রথম ফ্রেম দেখানো অন্তর্ভুক্ত।
PokedexStartupBenchmark-এ, কোল্ড স্টার্টের সাথে TTID-এর জন্য Compose 1.12,
Views-এর সমতুল্য।
| ভার্সন | প্রাথমিক ডিসপ্লেতে লাগা সময় (মিলিসেকেন্ড) |
|---|---|
| Compose 1.12 | ১৪৯ |
| ভিউ | 151 |
ফুল ডিসপ্লেতে দেখানোর সময়
অ্যাপ ইন্টার্যাক্টিভ না হওয়া পর্যন্ত টাইম টু ফুল ডিসপ্লে (TTFD) সময় পরিমাপ করে। এর অর্থ হল, সব ডেটা লোড করা হয়েছে এবং আঁকা হয়েছে। সম্পূর্ণ ডিসপ্লে দেখানোর সময় সম্পর্কে আরও জানতে, অ্যাপ স্টার্টআপ টাইম দেখুন।
PokedexStartupBenchmark-এ, কোল্ড স্টার্ট সহ TTFD-এর জন্য Compose 1.12, Views-এর তুলনায়
প্রায় ২% ধীরগতির।
| ভার্সন | সম্পূর্ণ ডিসপ্লে হতে সময় (ms) |
|---|---|
| Compose 1.12 | 202 |
| ভিউ | 193 |
হিরো বেঞ্চমার্ক স্ক্রল করুন
স্ক্রলিং পারফর্ম্যান্স পরিমাপ করতে আমরা PokedexScrollBenchmark ব্যবহার করেছি। এটি ছবি সহ লেজি গ্রিডের জন্য Pokedex অ্যাপ স্ক্রিনের স্ক্রল পারফর্ম্যান্স পরিমাপ করে। এই বেঞ্চমার্কে, সম্পূর্ণ স্ক্রিন একাধিকবার স্ক্রল ও ফ্লিং করা হয় এবং নতুন আইটেম লোড করা হয়। স্ক্রল পারফর্ম্যান্স জ্যাঙ্ক রেট দ্বারা পরিমাপ করা হয়।
জ্যাঙ্ক রেট
Android ডিভাইস প্রতি সেকেন্ডে ৬০ বা ১২০ ফ্রেম (fps) পর্যন্ত রেন্ডার করে। এর অর্থ হল ফ্রেম তৈরি করার জন্য সিস্টেমের একটি কঠোর সময়সীমা (যেমন, ৬০fps-এর জন্য ১৬.৬ms) আছে। অ্যাপটি কাজ করতে খুব বেশি সময় নিলে, এর ফলে দৃশ্যমান স্টাটার হতে পারে যাকে আমরা জ্যাঙ্ক বলি।
PokedexScrollBenchmark-এ, Compose 1.9.0 থেকে Compose-এর পারফর্ম্যান্স Views-এর পারফর্ম্যান্সের সাথে মিলে যায়, যেখানে অতিরিক্ত জ্যাঙ্ক ০ শতাংশ পয়েন্ট। Pixel 6-এ (Compose 1.11 থেকে
পরীক্ষা করা শুরু হয়েছে), Compose ও Views, দুটিতেই ০% জ্যাঙ্ক রেট পাওয়া গেছে।
| Compose ভার্সন | ডিভাইস | ভিউয়ের (pp) তুলনায় অতিরিক্ত জ্যাঙ্ক |
|---|---|---|
| ১.৩.৩ | Pixel 3a | +০.৩৫ |
| ১.৪.৩ | Pixel 3a | +০.৪১ |
| ১.৫.৪ | Pixel 3a | +০.৪২ |
| ১.৬.৮ | Pixel 3a | +০.২১ |
| 1.7.8 | Pixel 3a | +০.৩৬ |
| 1.8.0 | Pixel 3a | +০.৩৮ |
| ১.৯.০ | Pixel 3a | 0 |
| ১.১০.০ | Pixel 3a | 0 |
| ১.১১ | Pixel 6 | 0 |
| ১.১২ | Pixel 6 | 0 |
হিরো বেঞ্চমার্ক রান করুন
পারফর্ম্যান্সের ফলাফল যাচাই করতে এবং স্থানীয়ভাবে বেঞ্চমার্ক রান করতে:
- সোর্স কোড চেক করতে AndroidX গাইড ফলো করুন।
- বেঞ্চমার্ক ও টার্গেট APK (
pokedex-macrobenchmarkওpokedex-macrobenchmark-target) তৈরি করতে, টেস্ট ডিভাইসে সেগুলি ইনস্টল করতে এবংadbবা Android Studio ব্যবহার করেPokedexStartupBenchmarkওPokedexScrollBenchmarkসুইট রান করতে Hero Benchmarks সোর্স কোড README-তে দেওয়া নির্দেশাবলী অনুসরণ করুন।
আপনি যেকোনও কাজ করে এমন ডিভাইসে এইসব বেঞ্চমার্ক চালাতে পারবেন, যেমন কোনও নির্দিষ্ট ডিভাইস যার জন্য আপনি অ্যাপ অপ্টিমাইজ করছেন। তবে, অফিসিয়াল ফলাফল যাচাই করতে, একই হার্ডওয়্যার সেট-আপ ব্যবহার করুন।