مقاييس الأداء الرئيسية هي مجموعة من مقاييس الأداء التي تغطي تجارب المستخدمين في التطبيق على مستوى عالٍ، مثل بدء تشغيل التطبيق أو الانتقال في تطبيق Pokedex المفتوح المصدر.
- مقاييس أداء بدء التشغيل: تتبُّع الوقت من فتح التطبيق إلى عرض المحتوى.
- مقاييس أداء التمرير: قياس أداء التمرير في شبكة بطيئة التحميل تحتوي على صور
إعداد الاختبار
- اختيار التطبيق: أجرينا هذه الاختبارات باستخدام تطبيق Pokedex المفتوح المصدر، وقارنّا بين إصدارَيه المستندَين إلى View والمستندَين إلى Compose. تم اختيار التطبيق لتمثيل سيناريوهات من العالم الحقيقي، ولم يتم تطويره بواسطة فريق Compose.
- إعداد الأجهزة: تم إجراء قياسات الأداء على هاتف Pixel 6 يعمل بنظام التشغيل Android 17 (المستوى 37 من واجهة برمجة التطبيقات) مع قفل وحدات المعالجة المركزية ووحدات معالجة الرسومات. قبل الإصدار 1.12 من Compose، تم إجراء الاختبارات على هاتف Pixel 3a. اعتبارًا من الإصدار 1.12 من Compose، يتم استخدام هاتف Pixel 6 كمرجع قياسي للأداء في عمليات قياس الأداء الرئيسية.
- إعداد الإصدار: تستخدم مقاييس الأداء التطبيق الذي تم إنشاؤه في وضع الإصدار مع تفعيل R8. يتم تجميع التطبيق مسبقًا بالكامل لتقليل عدم الاستقرار الناتج عن التجميع أثناء التنفيذ (JIT).
- اختيار النتائج: لضمان تحليل أسوأ الحالات، تم استبعاد القيم الشاذة للغاية والضوضاء غير التمثيلية من نتائج قياس الأداء. بعد ذلك، تم وضع خط أساس من خلال اختيار القيم المتوسطة لبيانات الأداء ذات الحد الأعلى
مقاييس الأداء الخاصة بالشركات الناشئة الرائدة
لقياس وقت بدء التشغيل، استخدمنا PokedexStartupBenchmark. يقيس
PokedexStartupBenchmark الوقت الذي يستغرقه تطبيق Pokedex ليصبح
مرئيًا للمستخدم.
يمكن تشغيل التطبيق في إحدى الحالات الثلاث التالية: التشغيل على البارد أو إعادة التشغيل البطيء أو إعادة التشغيل السريع. وتؤثر كل حالة في المدة التي يستغرقها التطبيق ليصبح مرئيًا للمستخدم. في التشغيل على البارد، يبدأ التطبيق من الصفر. في هذا الاختبار، نقيس أداء تشغيل التطبيق في حالة التشغيل على البارد. ننصحك بتحسين التطبيق دائمًا بناءً على افتراض بدء التشغيل على البارد. ويمكن أن يؤدي ذلك إلى تحسين أداء عمليات التشغيل الدافئة والساخنة أيضًا.
المقاييس التي نستخدمها لقياس وقت بدء تشغيل التطبيق هي الوقت المُستغرَق للعرض الأولي والوقت المُستغرَق للعرض الكامل.
الوقت المستغرَق للعرض الأولي
يقيس "الوقت المستغرَق حتى العرض الأولي" (TTID) الوقت الذي يستغرقه التطبيق لإنتاج لقطته الأولى، بما في ذلك بدء العملية أثناء التشغيل على البارد، وإنشاء النشاط أثناء التشغيل على البارد أو الدافئ، وعرض اللقطة الأولى.
في PokedexStartupBenchmark، يتساوى الإصدار 1.12 من Compose مع Views في ما يتعلّق بمقياس TTID
مع بدء التشغيل على البارد.
| الإصدار | الوقت المُستغرَق للعرض الأولي (بالملّي ثانية) |
|---|---|
| Compose 1.12 | 149 |
| المشاهدات | 151 |
الوقت المستغرَق للعرض الكامل
يقيس مقياس "الوقت المستغرَق للعرض الكامل" (TTFD) الوقت المستغرَق حتى يصبح التطبيق تفاعليًا. وهذا يعني أنّه تم تحميل جميع البيانات ورسمها. لمزيد من المعلومات حول وقت العرض الكامل، يُرجى الاطّلاع على وقت بدء تشغيل التطبيق.
في PokedexStartupBenchmark، يكون الإصدار 1.12 من Compose أبطأ بنسبة %2 تقريبًا من
Views في ما يتعلّق بمقياس TTFD مع التشغيل على البارد.
| الإصدار | الوقت المستغرَق للعرض الكامل (بالملي ثانية) |
|---|---|
| Compose 1.12 | 202 |
| المشاهدات | 193 |
مقاييس أداء Scroll Hero
لقياس أداء الانتقال، استخدمنا PokedexScrollBenchmark. يقيس أداء التمرير في شاشة تطبيق Pokedex لشبكة بطيئة التحميل مع الصور. في هذا الاختبار، يتم الانتقال إلى أعلى الشاشة وأسفلها بالكامل عدة مرات ويتم تحميل عناصر جديدة. يتم قياس أداء الانتقال من خلال معدّل البطء.
معدّل البطء
تعرض أجهزة Android ما يصل إلى 60 أو 120 لقطة في الثانية. وهذا يعني أنّ النظام لديه مهلة صارمة (على سبيل المثال، 16.6 ملي ثانية لـ 60 لقطة في الثانية) لإنتاج لقطة. إذا استغرق التطبيق وقتًا طويلاً لإنجاز عمله، فقد يتسبب ذلك في حدوث تقطُّع مرئي نسميه "توقُّف مؤقت لعرض واجهة المستخدم".
في PokedexScrollBenchmark، يتطابق أداء Compose مع أداء Views مع نسبة مئوية تبلغ 0 من حالات التوقّف الزائد منذ الإصدار 1.9.0 من Compose. على هاتف Pixel 6 (تم اختباره بدءًا من الإصدار 1.11 من Compose)، يحقّق كل من Compose وViews معدّل تأخُّر في العرض يبلغ %0.
| إصدار Compose | الجهاز | نسبة البطء الزائد عن المشاهدات (نقطة مئوية) |
|---|---|---|
| 1.3.3 | Pixel 3a | +0.35 |
| 1.4.3 | Pixel 3a | +0.41 |
| 1.5.4 | Pixel 3a | +0.42 |
| 1.6.8 | Pixel 3a | +0.21 |
| 1.7.8 | Pixel 3a | +0.36 |
| 1.8.0 | Pixel 3a | +0.38 |
| 1.9.0 | Pixel 3a | 0 |
| 1.10.0 | Pixel 3a | 0 |
| 1.11 | Pixel 6 | 0 |
| 1.12 | Pixel 6 | 0 |
إجراء قياسات أداء رئيسية
للتحقّق من صحة نتائج الأداء وتشغيل مقاييس الأداء محليًا:
- اتّبِع دليل AndroidX للاطّلاع على الرمز المصدر.
- اتّبِع التعليمات الواردة في ملف README للرمز المصدر في Hero Benchmarks لإنشاء حِزم APK المستهدَفة وحِزم APK الخاصة بالاختبار (
pokedex-macrobenchmarkوpokedex-macrobenchmark-target)، وتثبيتها على جهاز اختبار، وتشغيل حزمتَيPokedexStartupBenchmarkوPokedexScrollBenchmarkباستخدامadbأو "استوديو Android".
يمكنك إجراء هذه الاختبارات على أي جهاز متوافق، مثل جهاز معيّن تعمل على تحسين تطبيقك ليتوافق معه. ومع ذلك، للتحقّق من صحة النتائج الرسمية، يجب استخدام إعدادات الأجهزة نفسها.