اضبط سلوك Microbenchmark باستخدام وسيطات أدوات القياس التالية. يمكنك إما إضافة هذه الخيارات إلى إعدادات 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.profiling.mode=StackSampling
إذا كنت تستدعي أمرًا خاصًا بأداة مباشرةً (وهو ما قد يحدث في بيئات اختبار الدمج المتواصل)، مرِّر الوسيط إلى am instrument
باستخدام -e
:
adb shell am instrument -e androidx.benchmark.profiling.mode StackSampling -w com.example.macrobenchmark/androidx.benchmark.junit4.AndroidBenchmarkRunner
لمزيد من المعلومات حول إعداد مقاييس الأداء في CI، يُرجى الاطّلاع على قياس الأداء في CI.
androidx.benchmark.cpuEventCounter.enable (تجريبي)
تحسب هذه السمة أحداث وحدة المعالجة المركزية المحدّدة في androidx.benchmark.cupEventCounter.events
.
يتطلّب ذلك إذن الوصول إلى الجذر.
- نوع الوسيطة: قيمة منطقية
- القيمة التلقائية: false
androidx.benchmark.cpuEventCounter.events (تجريبي)
تحدّد هذه السمة أنواع أحداث وحدة المعالجة المركزية التي سيتم احتسابها. لاستخدام هذه الوسيطة، يجب ضبط قيمة androidx.benchmark.cpuEventCounter.enable
على true
.
- نوع الوسيطة: قائمة بسلاسل مفصولة بفواصل
- الخيارات المتاحة:
Instructions
CPUCycles
L1DReferences
L1DMisses
BranchInstructions
BranchMisses
L1IReferences
L1IMisses
- القيمة التلقائية:
Instructions
أوCpuCycles
أوBranchMisses
androidx.benchmark.dryRunMode.enable
تتيح لك إجراء اختبارات الأداء في حلقة واحدة للتحقّق من عملها بشكلٍ سليم.
ويعني ذلك ما يلي:
- لا يتم فرض أخطاء الإعداد (على سبيل المثال، لتسهيل إجراء اختبارات صحة منتظمة على المحاكيات)
- لا يتم تشغيل اختبار الأداء إلا في حلقة واحدة، بدون عملية إعداد مسبق
- لا يتم تسجيل القياسات وعمليات التتبُّع لتقليل وقت التشغيل
يؤدي ذلك إلى تحسين معدل نقل البيانات في الاختبار والتحقّق من صحة منطق قياس الأداء مقارنةً بصحة الإصدار والقياس.
- نوع الوسيطة: قيمة منطقية
- القيمة التلقائية:
false
androidx.benchmark.killExistingPerfettoRecordings
تؤدي أداة القياس إلى إيقاف أي تسجيلات حالية في Perfetto (أداة تتبُّع النظام) تلقائيًا عند بدء عملية تتبُّع جديدة للحدّ من التداخل. لإيقاف هذا السلوك، مرِّر القيمة
false
.
- نوع الوسيطة: قيمة منطقية
- القيمة التلقائية:
true
androidx.benchmark.output.enable
يتيح كتابة ملف JSON الخاص بالنتائج في وحدة التخزين الخارجية.
- نوع الوسيطة: قيمة منطقية
- القيمة التلقائية:
true
androidx.benchmark.profiling.mode
يسمح بتسجيل ملفات التتبُّع أثناء تشغيل مقاييس الأداء. راجِع إنشاء ملف تعريف لاختبار أداء صغير للاطّلاع على الخيارات المتاحة.
يُرجى العِلم أنّ بعض إصدارات نظام التشغيل Android لا تتيح تتبُّع الأساليب بدون أن تتأثّر القياسات اللاحقة. تعرض مكتبة Microbenchmark استثناءً لمنع ذلك، لذا استخدِم الوسيطة التلقائية لتسجيل عمليات تتبُّع الطرق فقط عندما يكون ذلك آمنًا. راجِع المشكلة رقم 316174880.
- نوع الوسيطة: سلسلة
- الخيارات المتاحة:
MethodTracing
StackSampling
None
- القيمة التلقائية: إصدار آمن من
MethodTracing
لا يسجّل إلا تتبُّع طريقة إذا كان الجهاز يمكنه إجراء ذلك بدون التأثير في القياسات.
androidx.benchmark.suppressErrors
تقبل هذه السمة قائمة مفصولة بفواصل من الأخطاء التي يجب تحويلها إلى تحذيرات.
- نوع الوسيطة: قائمة سلاسل
- الخيارات المتاحة:
DEBUGGABLE
LOW-BATTERY
EMULATOR
CODE-COVERAGE
UNLOCKED
SIMPLEPERF
ACTIVITY-MISSING
- القيمة التلقائية: قائمة فارغة
additionalTestOutputDir
تضبط هذه السمة مكان حفظ تقارير قياس الأداء بتنسيق JSON ونتائج تحديد المشاكل على الجهاز.
- نوع الوسيطة: سلسلة مسار الملف
- القيمة التلقائية: الدليل الخارجي لحزمة APK التجريبية
المستمع
قد تحصل على نتائج غير متسقة في اختبار الأداء إذا تم تنفيذ عمل غير ذي صلة في الخلفية أثناء تشغيل اختبار الأداء.
لإيقاف العمل في الخلفية أثناء قياس الأداء، اضبط نوع وسيطة أدوات القياس listener
على androidx.benchmark.junit4.SideEffectRunListener
.
- نوع الوسيطة: سلسلة
- الخيارات المتاحة:
androidx.benchmark.junit4.SideEffectRunListener
- القيمة التلقائية: لم يتم تحديدها
أفلام مُقترَحة لك
- ملاحظة: يتم عرض نص الرابط عندما تكون JavaScript غير مفعّلة
- وسيطات أدوات Macrobenchmark
- إنشاء ملف تعريف لـ Microbenchmark
- إنشاء ملفات Baseline Profiles {:#creating-profile-rules}