إضافة مقاييس أداء مصغَّرة

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

لاختيار إعدادات أداة تحليل الأداء، أضِف مَعلمة أداة تشغيل الأدوات instrumentation runner androidx.benchmark.profiling.mode مع إحدى المَعلمات MethodTracing (التلقائية) أو StackSampling أو None، كما هو موضّح في المقتطف التالي.

لمزيد من المعلومات حول الخيارات، يُرجى الاطّلاع على تسجيل طُرق Java/Kotlin. MethodTracing هو الإجراء المكافئ للتتبّع، وStackSampling هو الإجراء المكافئ لتحليل عيّنات الأداء كما هو محدّد في هذا المستند.

رائع

android {
    defaultConfig {
        // must be one of: 'None', 'StackSampling', or 'MethodTracing'
        testInstrumentationRunnerArguments["androidx.benchmark.profiling.mode"]= 'StackSampling'
    }
}

Kotlin

android {
    defaultConfig {
        // must be one of: 'None', 'StackSampling', or 'MethodTracing'
        testInstrumentationRunnerArguments["androidx.benchmark.profiling.mode"] = "StackSampling"
    }
}

عند إنشاء ملف تعريف أداء لاختبار معياري، يتم نسخ ملف .trace للإخراج إلى المضيف في الدليل إلى جانب نتائج JSON. لفحص نتائج التحليل في IDE IDE، انقر على رابط تتبُّع الطريقة أو تتبُّع تحليل تسلسل استدعاء الدوال البرمجية في نتائج اختبار الأداء الصغير.

MethodTracing

يكون تتبُّع الطريقة مفيدًا عند محاولة تحسين الرمز البرمجي لأنّه يمكن أن يساعدك في تحديد الطرق التي تستغرق وقتًا أطول من غيرها. يمكنك بعد ذلك التركيز على تحسين الطرق التي لها التأثير الأكبر في الأداء.

يتمّ إنشاء الملف الشخصي للتطبيق بشكل تسلسلي بعد قياس الرمز، لذا يعرض الاختبار كلاً من التوقيت الدقيق ونتائج الملف الشخصي.

تكون ميزة تتبُّع الطرق مفعَّلة تلقائيًا.

ملاحظة: في بعض إصدارات نظام التشغيل Android وART، تكون ميزة تتبُّع الطرق غير مفعّلة تلقائيًا. وفي هذه الحالات، يعرض Android Studio تحذيرًا.

StackSampling

يمكن أن يساعد تتبُّع العيّنات أيضًا في تحديد الطرق المُكلّفة بدون زيادة الأداء الناتجة عن تتبُّع الطرق. ومع ذلك، إذا دخل تطبيقك في طريقة بعد تسجيل تسلسل استدعاء الدوال البرمجية وخرج من الطريقة قبل التسجيل التالي ، لن يتم تسجيل طلب استدعاء الطريقة. لتتبُّع الطرق التي تتضمن دورات حياة قصيرة بشكل صحيح، استخدِم ميزة تتبُّع الطرق بدلاً من ميزة تتبُّع العيّنات.

باستخدام ميزة جمع عيّنات الحِزم، تستدعي عيّنات الأداء الحِزم بعد اكتمال عملية الإعداد. يمكنك التحكّم في سلوك أخذ العينات، مثل وتيرة أخذ العينات ومدة أخذ العينات باستخدام قياسات الوسيطات.

في نظام التشغيل Android 10 (المستوى 29 من واجهة برمجة التطبيقات) والإصدارات الأحدث، يستخدم تحليل تسلسل استدعاء الدوال البرمجية أداة Simpleperf لتحليل تسلسلات استدعاء الدوال البرمجية للتطبيقات، بما في ذلك رمز C++. على نظام التشغيل Android 9 (المستوى 28 لواجهة برمجة التطبيقات) والإصدارات الأقدم، يتم استخدام Debug.startMethodTracingSampling لالتقاط عيّنات تسلسل استدعاء الدوال البرمجية.

يمكنك ضبط وضع التحليل هذا من خلال إضافة قياسات أخرى للوسيطات:

  • androidx.benchmark.profiling.sampleFrequency

    • عدد عيّنات الحِزم التي يتم تسجيلها في الثانية
    • نوع الوسيطة: عدد صحيح
    • الإعداد التلقائي هو 1000 عيّنة في الثانية.
  • androidx.benchmark.profiling.sampleDurationSeconds

    • مدة الاختبار المعياري المطلوب تنفيذه.
    • نوع الوسيطة: عدد صحيح
    • المدة التلقائية هي 5 ثوانٍ.
  • androidx.benchmark.profiling.skipWhenDurationRisksAnr

    • تخطّي تتبُّع الإجراءات عندما يكون من المحتمل أن يؤدي إلى حدوث خطأ ANR يجب إبقاء هذا الخيار مفعّلاً لعمليات التنفيذ المتسلسل، لأنّ أخطاء ANR يمكن أن تتسبب في مشاكل أثناء عمليات التنفيذ المتسلسل الطويلة.
    • نوع الوسيطة: قيمة منطقية
    • الإعداد التلقائي هو true

بدون تحديد نمط

لا تلتقط هذه الوسيطة ملفًا لتحليل الأداء. لا يزال يتم قياس معلومات التوقيت والاقتسام.