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

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

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

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

  1. عدِّل إعدادات التشغيل من خلال النقر على تعديل ثم على الإعدادات.
    تعديل إعدادات التشغيل
    الشكل 1. عدِّل إعدادات التشغيل.
  2. عدِّل وسيطات الأدوات من خلال النقر على المزيد بجانب وسيطات الأدوات.
    تعديل وسيطات الأدوات
    الشكل 2. عدِّل ملف instrumentation الوسيطات.
  3. أضِف مَعلمة الأدوات المطلوبة بالنقر على إضافة ضمن أدوات القياس مَعلمات إضافية.
    إضافة وسيطة القياس المطلوبة
    الشكل 3. أضِف وسيطة instrumentation المطلوبة.

إذا كنت تُجري اختبار الأداء على مستوى التطبيق من سطر الأوامر، استخدِم -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

يسمح بإجراء عمليات الفلترة لنوع واحد فقط من الاختبارات: إنشاء الملف الشخصي الأساسي أو اختبار الأداء الإجمالي. وتتوفّر أيضًا قوائم مفصولة بفواصل.

  • نوع الوسيطة: سلسلة
  • الخيارات المتاحة:
    • Macrobenchmark
    • BaselineProfile
  • الإعداد التلقائي: غير محدّد

androidx.benchmark.junit4.SideEffectRunListener

قد تحصل على نتائج اختبار أداء غير متّسقة إذا تم تنفيذ مهمة غير ذات صلة في الخلفية أثناء إجراء الاختبار.

لإيقاف العمل في الخلفية أثناء قياس الأداء، اضبط listener نوع وسيطة أداة القياس على androidx.benchmark.junit4.SideEffectRunListener.

  • نوع الوسيطة: سلسلة
  • الخيارات المتاحة:
    • androidx.benchmark.junit4.SideEffectRunListener
  • الإعداد التلقائي: غير محدّد

androidx.benchmark.fullTracing.enable

تفعيل نقاط تتبُّع androidx.tracing.perfetto، مثل تتبُّع androidx.tracing.perfetto compositing في Jetpack Compose

عليك إعداد مشروعك لتتمكّن من تسجيل تتبُّع التركيبة من مقاييس الأداء. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تسجيل تتبع باستخدام أداة قياس الأداء الموسّع في Jetpack.

  • نوع الوسيطة: منطقي
  • الإعدادات التلقائية هي: false

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>. يجب أن يكون التطبيق قابلاً للتحليل على نظامَي التشغيل Android 10 و11 للسماح لتطبيق Macrobenchmark بتسجيل معلومات تتبُّع مفصّلة من العملية المستهدفة، مثل أقسام تتبُّع النظام المحدّدة في التطبيق أو المكتبات. يجب إيقاف هذا الخطأ بحذر شديد.

    • METHOD-TRACING-ENABLED

      تم تفعيل ميزة تتبُّع الطريقة في اختبار Macrobenchmark الذي تم إجراؤه للتطبيق الذي يتم قياس أدائه. يؤدي ذلك إلى تشغيل الجهاز الظاهري ببطء أكبر من المعتاد، لذا يجب مراعاة المقاييس من ملفات التتبُّع فقط بمصطلحات نسبية، على سبيل المثال، مقارنةً بسرعة التشغيل الأول بالتشغيل الثاني. يمكن أن يؤدي كتم هذا الخطأ إلى نتائج غير دقيقة في حال مقارنة مقاييس الأداء لملف الإصدار باستخدام خيارات تتبُّع طرق مختلفة.

  • الإعداد التلقائي: قائمة فارغة

additionalTestOutputDir

لضبط مكان حفظ تقارير قياس الأداء ونتائج تحليل الأداء بتنسيق JSON على الجهاز.

  • نوع الوسيطة: سلسلة مسار
  • الإعداد التلقائي: الدليل الخارجي لحزمة APK الاختبارية