وسيطات أدوات قياس الأداء المصغّرة

اضبط سلوك Microbenchmark باستخدام وسيطات أدوات القياس التالية. يمكنك إما إضافة هذه الخيارات إلى إعدادات Gradle أو تطبيقها مباشرةً عند تنفيذ اختبار الأجهزة من سطر الأوامر. لضبط هذه الوسيطات لجميع عمليات تشغيل الاختبارات في "استوديو Android" وواجهة سطر الأوامر، أضِفها إلى testInstrumentationRunnerArguments:

android {
    defaultConfig {
        // ...
        testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
    }
}

يمكنك أيضًا إعداد وسيطات أدوات القياس عند تشغيل مقاييس الأداء من Android Studio. لتغيير الوسيطات، اتّبِع الخطوات التالية:

  1. عدِّل إعدادات التشغيل من خلال النقر على تعديل واختيار الإعدادات التي تريد تعديلها.
    الشكل 1. عدِّل إعدادات التشغيل.
  2. عدِّل وسيطات القياس من خلال النقر على بجانب حقل وسيطات القياس.
    الشكل 2. عدِّل وسيط القياس.
  3. انقر على وأضِف وسيطة القياس المطلوبة.
    الشكل 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
  • القيمة التلقائية: لم يتم تحديدها