وسيطات أدوات قياس الأداء على مستوى التطبيق

اضبط سلوك المكتبة باستخدام وسيطات القياس التالية. يمكنك إما إضافة هذه الخيارات إلى إعدادات 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.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
  • القيمة التلقائية: لم يتم تحديدها