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

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

لاختيار إعدادات أداة تحليل الأداء، أضِف وسيطة أداة تحليل الأداء runner‏ androidx.benchmark.profiling.mode مع إحدى وسيطات MethodTracing أو StackSampling أو None، كما هو موضّح في المقتطف التالي.

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

رائع

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. لفحص نتائج تحليل الأداء في أداة تحليل أداء وحدة المعالجة المركزية (CPU) في "استوديو Android"، اختَر ملف > فتح. لمزيد من المعلومات عن قراءة عمليات التتبُّع وفهمها، اطّلِع على مقالة فحص عمليات التتبُّع.

MethodTracing

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

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

StackSampling

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

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

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

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

  • androidx.benchmark.profiling.sampleFrequency

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

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

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

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