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

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

لاختيار إعدادات أداة تحليل الأداء، أضِف وسيطة أداة تحليل الأداء 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 ثوانٍ.

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

ولا تحصل هذه الوسيطة على ملف تحليلي. لا يزال يتم قياس معلومات التوقيت والاقتسام.