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

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

لاختيار إعدادات أداة تحليل الأداء، أضِف وسيط مشغّل أدوات القياس 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. لفحص نتائج تحديد الأداء في استوديو Android، انقر على الرابط تتبُّع تنفيذ الدوال البرمجية أو تتبُّع أخذ عيّنات من سلسلة استدعاء الدوال البرمجية في نتائج الاختبار المعياري المصغّر.

MethodTracing

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

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

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

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

StackSampling

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

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

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

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

  • androidx.benchmark.profiling.sampleFrequency

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

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

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

بدون

لا تتضمّن وسيطة السطر هذه ملفًا خاصًا بإنشاء الملفات الشخصية. سيستمر قياس المعلومات المتعلقة بالتوقيت والمخصصات.