توفّر لك Microbenchmarks تلقائيًا معلومات عن توقيت الرمز البرمجي الذي تم تنفيذه وعمليات تخصيص الموارد له. إذا أردت التحقيق في سبب بطء تشغيل الرمز الذي تم قياسه، يمكنك فحص سجلّ الإجراءات الذي يتم تسجيله تلقائيًا في إصدارات نظام التشغيل المتوافقة أو اختيار إعدادات أخرى لإنشاء الملفات الشخصية.
لاختيار إعدادات أداة التحليل، أضِف وسيطة مشغّل الأدوات
androidx.benchmark.profiling.mode مع إحدى الوسيطات
MethodTracing (تلقائي) أو
StackSampling أو None، كما هو موضّح في
المقتطف التالي.
لمزيد من المعلومات حول الخيارات، يُرجى الاطّلاع على تسجيل طرق Java/Kotlin.
MethodTracing هو ما يعادل التتبُّع، وStackSampling هو ما يعادل أخذ العينات كما هو محدّد في ذلك المستند.
أنيق
android { defaultConfig { // must be one of: 'None', 'StackSampling', or 'MethodTracing' testInstrumentationRunnerArguments["androidx.benchmark.profiling.mode"]= 'StackSampling' } }
Kotlin
android { defaultConfig { // must be one of: 'None', 'StackSampling', or 'MethodTracing' testInstrumentationRunnerArguments["androidx.benchmark.profiling.mode"] = "StackSampling" } }
عند تحليل أداء مقياس أداء، يتم نسخ ملف .trace الناتج إلى المضيف في
الدليل إلى جانب نتائج JSON. لفحص نتائج تحليل الأداء في
استوديو Android، اختَر رابط سجلّ الإجراءات أو تتبُّع عيّنات تسلسل استدعاء الدوال البرمجية
في نتائج قياس الأداء المصغّر.
MethodTracing
يُعدّ تتبُّع الإجراءات مفيدًا عند محاولة تحسين الرمز البرمجي لأنّه يمكن أن يساعدك في تحديد الإجراءات التي تستغرق وقتًا أطول من غيرها في التشغيل. يمكنك بعد ذلك التركيز على تحسين الطرق التي لها أكبر تأثير على الأداء.
يتم إنشاء ملفات التعريف بالتسلسل بعد قياس الرمز، لذا فإن الاختبار الخاص بك يخرج كلاً من التوقيت الدقيق ونتائج ملفات التعريف.
يتم تفعيل ميزة "تتبُّع الإجراءات" تلقائيًا.
StackSampling
يمكن أن يساعد تتبُّع العينات أيضًا في تحديد الطرق المكلفة بدون العبء الإضافي على الأداء الناتج عن تتبُّع الطرق. ومع ذلك، إذا دخل تطبيقك في إجراء بعد تسجيل حزمة تنفيذ وخرج الإجراء قبل التسجيل التالي، لن يتم تسجيل طلب الإجراء. لتتبُّع الطرق ذات دورات الحياة القصيرة بشكل صحيح، استخدِم تتبُّع الطرق بدلاً من تتبُّع العينات.
باستخدام جمع عيّنات التكدس، يجمع مقياس الأداء عيّنات من حزم التنفيذ بعد اكتمال عملية الإحماء. يمكنك التحكّم في سلوك أخذ العينات، مثل معدّل تكرار أخذ العينات ومدة أخذ العينات باستخدام وسيطات الأدوات.
في الإصدار 10 من نظام التشغيل Android (المستوى 29 لواجهة برمجة التطبيقات) والإصدارات الأحدث، تستخدم ميزة "أخذ عينات من تسلسل استدعاء الدوال" أداة Simpleperf لأخذ عينات من تسلسلات استدعاء الدوال في التطبيق، بما في ذلك رمز C++. على نظام التشغيل Android 9 (المستوى 28 من واجهة برمجة التطبيقات) والإصدارات الأقدم، يتم استخدام
Debug.startMethodTracingSampling لالتقاط عيّنات من تسلسل استدعاء الدوال البرمجية.
يمكنك ضبط وضع جمع البيانات هذا من خلال إضافة وسيطات قياس أخرى:
androidx.benchmark.profiling.sampleFrequency- عدد عيّنات التكدس التي يتم التقاطها في الثانية
- نوع الوسيطة: عدد صحيح
- القيمة التلقائية هي 1000 عيّنة في الثانية.
androidx.benchmark.profiling.sampleDurationSeconds- مدة قياس الأداء المطلوب تشغيله
- نوع الوسيطة: عدد صحيح
- المدة التلقائية هي 5 ثوانٍ.
androidx.benchmark.profiling.skipWhenDurationRisksAnr- يتخطّى تتبُّع الطريقة عندما يُحتمل أن يؤدي إلى حدوث خطأ ANR. يجب إبقاء هذا الخيار مفعَّلاً لعمليات تشغيل CI، لأنّ أخطاء ANR يمكن أن تسبّب مشاكل أثناء عمليات تشغيل CI الطويلة.
- نوع الوسيطة: قيمة منطقية
- القيمة التلقائية هي
true
بدون
لا تلتقط هذه الوسيطة ملف تحليل أداء. لا يزال يتم قياس المعلومات حول التوقيت والمخصصات.
التطبيقات المقترَحة لك
- ملاحظة: يتم عرض نص الرابط عندما يكون JavaScript غير مفعَّل
- وسيطات قياس الأداء الدقيق
- تشغيل مقاييس الأداء في عملية "الدمج المتواصل"