اضبط سلوك المكتبة باستخدام وسيطات القياس التالية. يمكنك إما إضافة هذه الخيارات إلى إعدادات Gradle أو تطبيقها مباشرةً عند تنفيذ اختبار الأجهزة من سطر الأوامر. لضبط هذه الوسيطات لجميع عمليات تشغيل الاختبارات في "استوديو Android" وواجهة سطر الأوامر، أضِفها إلى testInstrumentationRunnerArguments
:
android {
defaultConfig {
// ...
testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
}
}
يمكنك أيضًا إعداد وسيطات أدوات القياس عند تشغيل مقاييس الأداء من Android Studio. لتغيير الوسيطات، اتّبِع الخطوات التالية:
- عدِّل إعداد التشغيل من خلال النقر على تعديل ثم النقر على الإعداد.
الشكل 1. عدِّل إعدادات التشغيل. - عدِّل وسيطات القياس من خلال النقر على
الشكل 2. عدِّل وسيطات أدوات القياس.
المزيد ثم
وسيطات القياس.
- أضِف وسيطة القياس المطلوبة بالنقر على
الشكل 3. أضِف وسيطة "أدوات القياس" المطلوبة.
إضافة ضمن المَعلمات الإضافية الخاصة بالقياس.
إذا كنت تُشغّل اختبارات الأداء الكبيرة من سطر الأوامر، استخدِم -P
android.testInstrumentationRunnerArguments.[name of the argument]
:
./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile
إذا كنت تستدعي الأمر am instrument
مباشرةً (وهو ما قد يحدث في بيئات اختبار الدمج المتواصل)، مرِّر الوسيط إلى am instrument
باستخدام -e
:
adb shell am instrument -e androidx.benchmark.enabledRules BaselineProfile -w com.example.macrobenchmark/androidx.test.runner.AndroidJUnitRunner
لمزيد من المعلومات حول إعداد مقاييس الأداء في CI، يُرجى الاطّلاع على قياس الأداء في CI.
androidx.benchmark.compilation.enabled
تتيح لك إيقاف التجميع بين كل تكرار للمقياس. بشكل تلقائي، تتم إعادة تثبيت التطبيق المستهدَف وإعادة تجميعه بين كل مقياس أداء، وذلك لتلبية قيمة CompilationMode
التي تم تمريرها إلى measureRepeated
. يؤدي إيقاف هذا الخيار إلى إمكانية تخطّي كل من إعادة التثبيت والتجميع، مثلاً إذا أردت تجميع التطبيق المستهدَف بالكامل مرة واحدة قبل تشغيل مجموعة الاختبار وتنفيذ جميع مقاييس الأداء على هذا التطبيق المستهدَف المجمَّع بالكامل.
- نوع الوسيطة: قيمة منطقية
- القيمة التلقائية:
true
androidx.benchmark.dryRunMode.enable
تتيح لك تنفيذ مقاييس الأداء في حلقة واحدة للتحقّق من عملها بشكلٍ صحيح. يمكنك استخدامها مع الاختبارات العادية كجزء من عملية التحقّق.
- نوع الوسيطة: قيمة منطقية
- القيمة التلقائية:
false
androidx.benchmark.enabledRules
تسمح هذه السمة بفلترة عمليات التشغيل لتشمل نوعًا واحدًا فقط من الاختبارات، وهو إنشاء ملف Baseline Profile أو اختبار Macrobenchmark. يمكن أيضًا استخدام قوائم مفصولة بفواصل.
- نوع الوسيطة: سلسلة
- الخيارات المتاحة:
Macrobenchmark
BaselineProfile
- القيمة التلقائية: لم يتم التحديد
androidx.benchmark.fullTracing.enable
تفعّل هذه السمة نقاط التتبُّع androidx.tracing.perfetto
، مثل تتبُّع التركيب في Jetpack Compose.
عليك إعداد مشروعك لتتمكّن من تسجيل بيانات تتبُّع التركيب من مقاييس الأداء. لمزيد من المعلومات، راجِع تسجيل عملية تتبُّع باستخدام Jetpack Macrobenchmark.
- نوع الوسيطة: قيمة منطقية
- القيمة التلقائية:
false
androidx.benchmark.killExistingPerfettoRecordings
تؤدي أداة القياس إلى إيقاف أي تسجيلات حالية في Perfetto (أداة تتبُّع النظام) تلقائيًا عند بدء عملية تتبُّع جديدة للحدّ من التداخل. لإيقاف هذا السلوك، مرِّر القيمة
false
.
- نوع الوسيطة: قيمة منطقية
- القيمة التلقائية:
true
androidx.benchmark.profiling.mode
يسمح بتسجيل ملفات التتبُّع أثناء تشغيل مقاييس الأداء. تتطابق الخيارات المتاحة مع خيارات مكتبة Microbenchmark. لمزيد من المعلومات، راجِع الأوصاف في إنشاء ملف تعريف لأحد اختبارات Microbenchmark.
- نوع الوسيطة: سلسلة
- الخيارات المتاحة:
MethodTracing
StackSampling
None
- القيمة التلقائية:
None
androidx.benchmark.startupProfiles.enable
يتيح لك إيقاف إنشاء ملفات شخصية عند بدء التشغيل أثناء قياس الأداء.
- نوع الوسيطة: قيمة منطقية
- القيمة التلقائية:
true
androidx.benchmark.suppressErrors
تقبل هذه السمة قائمة مفصولة بفواصل للأخطاء المطلوب تحويلها إلى تحذيرات.
- نوع الوسيطة: قائمة سلاسل
الخيارات المتاحة:
DEBUGGABLE
يشير الخطأ
DEBUGGABLE
إلى أنّ الحزمة المستهدَفة تعمل معdebuggable=true
في بيانها، ما يؤدي إلى خفض أداء وقت التشغيل بشكل كبير من أجل توفير ميزات تصحيح الأخطاء. لتجنُّب هذا الخطأ، شغِّل مقاييس الأداء باستخدامdebuggable=false
. تؤثّر وسيطة إمكانية تصحيح الأخطاء في سرعة التنفيذ بطرق قد لا تؤدي إلى تحسينات في الأداء عند قياسه، أو قد تؤدي إلى تراجع في أداء الإصدار.LOW-BATTERY
عند انخفاض شحن البطارية، غالبًا ما تقلّل الأجهزة من الأداء لتوفير الطاقة المتبقية، مثلاً عن طريق إيقاف النوى الكبيرة. ويحدث ذلك حتى عندما تكون الأجهزة موصولة بمصدر طاقة. لا تخفِ هذا الخطأ إلا إذا كنت تتعمّد تحديد الأداء المنخفض للتطبيق.
EMULATOR
يخبرك الخطأ
EMULATOR
بأنّ مقياس الأداء يتم تشغيله على محاكي، وهو لا يمثّل أجهزة المستخدمين الحقيقيين. قد لا تنتقل التحسينات في مقاييس الأداء على المحاكي إلى تجربة المستخدم الحقيقي، أو قد تؤدي إلى تراجع أداء الجهاز الحقيقي. عليك استخدام جهاز فعلي لإجراء اختبار الأداء بدلاً من ذلك. يجب تجاهل هذا الخطأ بحذر شديد.NOT-PROFILEABLE
الحزمة المستهدَفة
$packageName
تعمل بدون<profileable shell=true>
. يجب ضبط السمة Profileable على الإصدارَين 10 و11 من نظام التشغيل Android للسماح لأداة Macrobenchmark بتسجيل معلومات تفصيلية عن التتبُّع من العملية المستهدَفة، مثل أقسام تتبُّع النظام المحدّدة في التطبيق أو المكتبات. يجب تجاهل هذا الخطأ بحذر شديد.METHOD-TRACING-ENABLED
تم تفعيل تتبُّع الطرق في عملية تشغيل Macrobenchmark للتطبيق الذي يتم قياس أدائه. يؤدي ذلك إلى تشغيل الجهاز الافتراضي بشكل أبطأ من المعتاد، لذا لا تأخذ في الاعتبار إلا المقاييس من ملفات التتبُّع من حيث القيم النسبية، مثل مقارنة سرعة التشغيل الأول بسرعة التشغيل الثاني. قد يؤدي تجاهل هذا الخطأ إلى نتائج غير دقيقة إذا قارنت مقاييس الأداء لإصدارات تستخدم خيارات مختلفة لتتبُّع الدوال البرمجية.
القيمة التلقائية: قائمة فارغة
additionalTestOutputDir
تضبط هذه السمة مكان حفظ تقارير قياس الأداء بتنسيق JSON ونتائج تحديد المشاكل على الجهاز.
- نوع الوسيطة: سلسلة مسار
- القيمة التلقائية: الدليل الخارجي لحزمة APK التجريبية
المستمع
قد تحصل على نتائج غير متسقة في اختبار الأداء إذا تم تنفيذ عمل غير ذي صلة في الخلفية أثناء تشغيل اختبار الأداء.
لإيقاف العمل في الخلفية أثناء قياس الأداء، اضبط نوع وسيطة أدوات القياس listener
على androidx.benchmark.junit4.SideEffectRunListener
.
- نوع الوسيطة: سلسلة
- الخيارات المتاحة:
androidx.benchmark.junit4.SideEffectRunListener
- القيمة التلقائية: لم يتم تحديدها
أفلام مُقترَحة لك
- ملاحظة: يتم عرض نص الرابط عندما تكون JavaScript غير مفعّلة
- وسيطات أدوات قياس الأداء الدقيق
- إنشاء ملفات Baseline Profile
- مكتبة JankStats