قياس أداء تطبيقك (المشاهدات)

مفاهيم وتنفيذ Jetpack Compose

تُعدّ المقارنة المعيارية طريقة لفحص أداء تطبيقك ورصده. ويمكنك إجراء مقارنات معيارية بانتظام لتحليل مشاكل الأداء وتصحيحها والمساعدة في ضمان عدم حدوث تراجعات في التغييرات الأخيرة.

يوفر Android مكتبتَين للمقارنة المعيارية ونهجَين لتحليل أنواع مختلفة من الحالات واختبارها في تطبيقك، وهما Macrobenchmark وMicrobenchmark.

Macrobenchmark

تقيس مكتبة Macrobenchmark تفاعلات المستخدمين النهائية الأكبر، مثل بدء التشغيل والتفاعل مع واجهة المستخدم والرسوم المتحركة. وتوفّر المكتبة تحكّمًا مباشرًا في بيئة الأداء التي تختبرها. وتتيح لك التحكّم في عملية التجميع وبدء تطبيقك وإيقافه لقياس بدء تشغيل التطبيق الفعلي أو التمرير فيه بشكل مباشر.

تُدخِل مكتبة Macrobenchmark الأحداث وترصد النتائج خارجيًا من تطبيق اختبار تم إنشاؤه باستخدام اختباراتك. لذلك، عند كتابة المقارنات المعيارية، لا يمكنك استدعاء رمز تطبيقك مباشرةً، بل يمكنك الانتقال داخل تطبيقك كمستخدم.

Microbenchmark

تتيح لك مكتبة Microbenchmark إجراء مقارنة معيارية لرمز التطبيق مباشرةً في حلقة تكرار. تم تصميم هذه المكتبة لقياس عمل وحدة المعالجة المركزية (CPU) الذي يقيّم أفضل أداء ممكن، مثل عمليات الوصول إلى القرص المخزّنة مؤقتًا وعمليات التجميع في الوقت المناسب (JIT) التي تم تسخينها، والتي قد تظهر لك مع حلقة تكرار داخلية أو دالة نشطة معيّنة. لا يمكن للمكتبة قياس الرمز الذي يمكنك استدعاؤه مباشرةً بشكل منفصل.

في ما يلي حالات جيدة لإجراء مقارنة معيارية:

  • عندما يحتاج تطبيقك إلى معالجة بنية بيانات معقّدة
  • عندما يتضمّن تطبيقك خوارزمية معيّنة تتطلّب الكثير من العمليات الحسابية ويتم استدعاؤها عدة مرات أثناء تشغيل التطبيق

يمكنك أيضًا قياس أجزاء من واجهة المستخدم. على سبيل المثال، يمكنك قياس تكلفة RecyclerView ربط العناصر، أو المدة التي يستغرقها عرض تخطيط، أو الـ أداء لعملية عرض التخطيط وقياسه لفئة View.

ومع ذلك، لا يمكنك قياس مدى مساهمة الحالات التي تم إجراء مقارنة معيارية لها في تجربة المستخدم العامة. في بعض السيناريوهات، لا تخبرك المقارنة المعيارية ما إذا كنت تحسّن من مؤثِّر سلبي، مثل الإطارات التي تم إسقاطها أو وقت بدء تشغيل التطبيق. لهذا السبب، من الضروري تحديد هذه المشاكل أولاً باستخدام Android Profiler. بعد العثور على الرمز الذي تريد التحقيق فيه وتحسينه، يمكن تشغيل حلقة التكرار التي تم إجراء مقارنة معيارية لها بشكل متكرر لإنشاء نتائج أقل ضوضاءً. ويتيح لك ذلك التركيز على مجال واحد للتحسين.

لا تعرض مكتبة Microbenchmark إلا معلومات عن تطبيقك، وليس عن النظام بشكل عام. لذلك، من الأفضل استخدامها لتحليل أداء الحالات الخاصة بالتطبيق، وليس الحالات التي قد تكون مرتبطة بمشاكل النظام العامة.

مقارنة مكتبتَي المقارنة المعيارية

Macrobenchmark Microbenchmark
الوظيفة قياس نقاط الدخول أو التفاعلات عالية المستوى، مثل بدء تشغيل نشاط أو تمرير قائمة قياس الدوال الفردية
النطاق اختبار خارج العملية للتطبيق الكامل اختبار داخل العملية لعمل وحدة المعالجة المركزية (CPU)
السرعة متوسط سرعة التكرار يمكن أن تتجاوز دقيقة واحدة سرعة تكرار سريعة غالبًا ما تكون أقل من 10 ثوانٍ
التتبع تتضمّن النتائج عمليات تتبُّع النظام. تتضمّن النتائج عملية تتبُّع أساسية للنظام وعملية تتبُّع الطريقة تلقائيًا.