مقياس الأداء
androidx.benchmark
androidx.standard.junit4
androidx.standard.macro
androidx.standard.macro.junit4
التعديل الأخير | الإصدار المستقر | سحب المرشح | الإصدار التجريبي | إصدار أولي |
---|---|---|---|---|
21 آب (أغسطس) 2024 | 1.3.0 | - | - | - |
إعلان التبعيات
لإضافة تبعية على مقياس الأداء، يجب إضافة مستودع Google Maven إلى لمشروعك. القراءة يمكنك الاطّلاع على مستودع Maven من Google لمعرفة المزيد المعلومات.
مقياس الأداء الكلي
لاستخدام مقياس الأداء الكلي
في مشروعك، أضف التبعيات التالية إلى ملف build.gradle
على
وحدة قياس أداء الماكرو:
Groovy
dependencies { androidTestImplementation "androidx.benchmark:benchmark-macro-junit4:1.3.0" }
Kotlin
dependencies { androidTestImplementation("androidx.benchmark:benchmark-macro-junit4:1.3.0") }
مقياس مصغّر
لاستخدام معيار الأداء المصغَّر
في مشروعك، أضف التبعيات التالية إلى ملف build.gradle
على
وحدة قياس الأداء المصغّرة:
Groovy
dependencies { androidTestImplementation "androidx.benchmark:benchmark-junit4:1.3.0" } android { ... defaultConfig { ... testInstrumentationRunner "androidx.benchmark.junit4.AndroidBenchmarkRunner" } }
Kotlin
dependencies { androidTestImplementation("androidx.benchmark:benchmark-junit4:1.3.0") } android { ... defaultConfig { ... testInstrumentationRunner = "androidx.benchmark.junit4.AndroidBenchmarkRunner" } }
كما توفر مكتبة المعايير الصغيرة مكونًا إضافيًا من مكونات Gradle التي يمكنك استخدامها مع وحدة المعايير الدقيقة.
يعين هذا المكون الإضافي الإعدادات الافتراضية لتهيئة التصميم للوحدة النمطية، وينشئ
نسخة قياس الأداء إلى المضيف،
وتوفر
./gradlew lockClocks
مهمة.
لاستخدام المكوّن الإضافي، يُرجى تضمين السطر التالي في كتلة "المكوّنات الإضافية" في المستوى الأعلى.
ملف build.gradle
:
Groovy
plugins { id 'androidx.benchmark' version '1.3.0' apply false }
Kotlin
plugins { id("androidx.benchmark") version "1.3.0" apply false }
طبِّق المكوِّن الإضافي على ملف build.gradle
الخاص بوحدة قياس الأداء.
Groovy
plugins { id 'androidx.benchmark' }
Kotlin
plugins { id("androidx.benchmark") }
ملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كان لديك أفكار لتحسين هذه المكتبة. يُرجى إلقاء نظرة على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية عن طريق بالنقر فوق زر النجمة.
يُرجى الاطّلاع على مستندات أداة تتبُّع المشاكل. لمزيد من المعلومات.
الإصدار 1.3
الإصدار 1.3.0
21 آب (أغسطس) 2024
تم طرح androidx.benchmark:benchmark-*:1.3.0
. يحتوي الإصدار 1.3.0 على عمليات التنفيذ هذه.
التغييرات في مقاييس الأداء الدقيقة منذ 1.2.0
- يكون تتبُّع الطريقة مُفعَّلاً تلقائيًا في مقاييس الأداء الدقيقة عند تشغيله على معظم الأجهزة.
- يعمل تتبع الطريقة كمرحلة منفصلة، بعد إجراء القياسات
- سيؤثر تتبُّع الطريقة على بعض إصدارات الأنظمة الأساسية وART في مراحل القياس اللاحقة، وفي هذه الإصدارات، يكون تتبّع الطريقة غير مفعَّل تلقائيًا وتتم طباعة تحذير على النتائج في "استوديو YouTube".
- مقاييس الأداء وأخطاء ANR لسلسلة المحادثات الرئيسية
- تمت إضافة
measureRepeatedOnMainThread
لمقاييس أداء سلاسل واجهة المستخدم (مثل تلك التي تتفاعل مع واجهات المستخدم في Compose/View)، وذلك لتجنُّب أخطاء ANR عند تشغيلها لعدة ثوانٍ. - يتم تخطّي عمليات تتبُّع الطريقة إذا كان من المتوقّع أن يتم تجاوز الموعد النهائي لتجنُّب أخطاء ANR. اضبط
androidx.benchmark.profiling.skipWhenDurationRisksAnr
على false لإيقاف هذا السلوك (لا يُنصَح به لعمليات تشغيل CI).
- تمت إضافة
- تصغير
- قواعد Proguard مضمّنة لتحسين مقاييس الأداء الدقيقة من خلال تفعيل عملية تصغير
- يتطلب التصغير/R8 في وحدة المكتبة توفر الإصدار 8.3 من AGP، ويمكن تفعيله عبر
android.buildTypes.release.androidTest.enableMinification
فيbuild.gradle
. - تمت إضافة واجهة برمجة تطبيقات
BlackHole.consume()
تجريبية لمنع حذف الرموز غير الصالحة (If6812 وb/286091643).
- المقاييس
- ميزة تجريبية لعدّاد أحداث وحدة المعالجة المركزية (CPU) (مقاييس من
perf_event_open
، تتطلّب الجذر في معظم إصدارات المنصة)، وإمكانية الوصول عبرInstrumentationArgument
androidx.benchmark.cpuEventCounter.enable
(يمكن ضبطها علىtrue
)، ويمكن ضبطandroidx.benchmark.cpuEventCounter.events
على سبيل المثال إلى (Instructions,CpuCycles
). من المفترض أن تكون هذه الطريقة متوافقة مع بعض أدوات محاكاة تصحيح أخطاء المستخدم، ولكن لم يتم اختبار توافقها على مستوى
- ميزة تجريبية لعدّاد أحداث وحدة المعالجة المركزية (CPU) (مقاييس من
تغيّرات مؤشر MAC منذ 1.2.0
- طريقة التتبع الشامل للمقاييس الكبيرة.
- يتم الآن تحديد عمليات تتبُّع الطريقة استنادًا إلى مدة
measureBlock
، ويمكنها تسجيل جلسات متعددة في حال بدء العملية عدة مرات. - في السابق، كان تتبُّع الطرق يعمل فقط مع مقاييس أداء
StartupMode.COLD
، ولا يتم تسجيل أي بيانات لـmeasureBlocks
لم تتم إعادة تشغيل العملية المستهدَفة. - تعمل الطريقة الثابتة على تتبُّعها في مقاييس الأداء القصوى، وبالتالي يجب تسجيل عمليات تتبُّع الطريقة بالكامل وصلاحيتها، حتى على الأجهزة الأبطأ. (I6349a، b/329904950)
- يتم الآن تحديد عمليات تتبُّع الطريقة استنادًا إلى مدة
- عليك تفريغ ملف ART الشخصي بشكل صحيح أثناء تكرارات
warmUp
الفردية عند إنهاء العملية، وبذلك تصبح قياساتCompilationMode.Partial(warmup=N)
أكثر دقة. (I17923) - رسالة تعذّر بث برنامج Drop Shader
- تمت إضافة اقتراحات تصحيح الأخطاء لرسالة تعذُّر بث أداة التظليل.
- إضافة وسيطتين للأدوات لإلغاء سلوك إفلات أداة التظليل إلى حلول الأعطال عند قياس أداء التطبيقات بدون الإصدار
ProfileInstaller
1.3:androidx.benchmark.dropShaders.enable=true/false
: يمكن استخدام هذه السمة لتخطّي كل حالات إسقاط أداة تظليل الملفات (بما في ذلك تلك التي تمّت في عمليات إطلاقStartupMode.Cold
)، لا سيّما عند قياس أداء التطبيقات التي لا تستخدم الإصدار 1.3 من أداة تثبيت الملف الشخصي حتى الآن.androidx.benchmark.dropShaders.throwOnFailure=true/false
: يمكن استخدام هذه السمة لتجاوز حالات التعذُّر عند محاولة تجاهل أدوات التظليل، على سبيل المثال عند قياس أداء التطبيقات بدون ملف profileinstaller 1.3 (I4f573).
- تمت إضافة صيغة
MacrobenchmarkRule#measureRepeated
التجريبية التي تتطلبPerfettoConfig
مخصّصًا لتسجيل تتبُّع Perfetto المخصّص بالكامل. تجدر الإشارة إلى أنّ الإعدادات التي تمّ ضبطها بشكل غير صحيح قد تؤدّي إلى تعذُّر تنفيذ فئات المقاييس المضمّنة. (Idfd3d، وb/309841164، وb/304038384) - يمكنك إلغاء مهام dexopt في الخلفية قبل تشغيل مقياس طلبك الأساسي للحد من التداخل. (I989ed)
- الآن وينتظر معيار الماكرو لمدة ثانية واحدة حتى يمسح التطبيق المستهدف ملف ART الشخصي (كان انتظر سابقًا 500 مللي ثانية). (I85a50، b/316082056)
- تجديد TraceMetric
- ملاحظة: يمكن أن تؤثِّر تغييرات
TraceSectionMetric
أدناه في النتائج في استخدام ميزة استيراد الإحالات الناجحة، وقد تؤدي إلى حدوث انقطاعات في التحليل أو تعطُّل التحليل. - أصبح المجموع هو الإعداد التلقائي الآن، حيث إن معظم استخدام هذا المقياس يكون للأحداث المتكرّرة، وسيتم أولاً تجاهل البيانات في هذه الحالات
- تم تغييرها لتكون أكثر قابلية للتخصيص مع توفير المزيد من الأوضاع
- تم الآن تضمين أسماء الأوضاع في اسم إخراج المقياس (في "استوديو YouTube" وJSON).
- يمكن الآن استخدام الشرائح التي تم إنشاؤها باستخدام
Trace.{begin|end}AsyncSection
.
- ملاحظة: يمكن أن تؤثِّر تغييرات
- المقاييس
- الطاقة - تمت إضافة
PowerMetric.deviceSupportsHighPrecisionTracking
وPowerMetric.deviceBatteryHasMinimumCharge()
وPowerMetric.deviceSupportsPowerEnergy()
- تمت إعادة تسمية "
Metric.getResult
" إلى "getMeasurements
" لمطابقة نوع الإرجاع. - تمت إضافة Log.w / تصنيفات الاستثناء إلى جميع حالات تعذُّر رصد بدء التشغيل. وهذا لا يغير السلوك الحالي (حيث تظهر بعض الأخطاء ويفشل البعض الآخر تلقائيًا في اكتشاف الشركة الناشئة)، بل يجعل الأمر أكثر وضوحًا. وبشكل عام، تكون تلك الأخطاء التي لا تعمل في
Log.w()
وتتعذّر الإبلاغ عن مقاييس بدء التشغيل هي تلك التي لا تتضمّن أحداثًا بدون إطار، ويتم طرح استثناءات عند رصد بدء التشغيل باستثناء معلومات توقيت عرض اللقطة (من شرائح واجهة المستخدم أو الوقت الفعلي). (Id240f، b/329145809) - تمت إضافة قياس
frameCount
إلى "FrameTimingMetric
" للمساعدة في اكتشاف الحالات التي تتغيّر فيها القياسات بسبب تغيُّر عدد اللقطات التي تم إنتاجها (تمت إضافة صور متحركة جديدة وإصلاح مشاكل الإيقاف). (I1e5aa) - تمت إضافة توضيح بأنّ
frameOverrunMs
هو المقياس المفضّل للتتبُّع عندما يكون متاحًا في "مستندات Google"، والسبب وراء ذلك. (I18749، b/329478323) - يتم إصلاح المشكلة التي قد يتم فيها إقران اللقطات التي لم يتم إنهاؤها في بداية عملية التتبُّع ونهايتها، ما قد يؤدي إلى الإبلاغ بشكل خاطئ عن أنّ الإطارات التي لم يتم إنهاؤها في بداية عملية التتبُّع ونهايتها. (I39353، b/322232828)
- يتم تحسين خطأ
FrameTimingMetric
في حال عدم إنشاء الإطارات، وإرسال رابط الإخراج دائمًا للتتبّع في حال تعذّر تحليل المقاييس للمساعدة في تشخيص المشكلة. (I956b9) - تم إصلاح عُطل في
FrameTimingMetric
تعذُّر تحليل رقم تعريف الإطار، خاصةً على بعض أجهزة المصنّع الأصلي للجهاز. (Ia24bc، وb/303823815، وb/306235276) - تم تخفيف التشدّد في عمليات التحقّق في
FrameMetrics
، وتمّت إضافة المزيد من التفاصيل إلى رسائل الخطأ. (Iadede)
- الطاقة - تمت إضافة
التغييرات في التقاط الملف الشخصي لمخطَّط البيانات / المكوّن الإضافي لنظام Gradle منذ الإصدار 1.2.0
- تمت زيادة الحد الأقصى الموصى به لإصدار AGP إلى 9.0.0-alpha01.
- تأكَّد من أنّ مهام
mergeArtProfile
وmergeStartupProfile
بانتظار إنشاء الملف الشخصي الأساسي دائمًا. (I623d6، b/343086054) - سيؤدي إنشاء ملف شخصي أساسي بنجاح إلى إنشاء ملخّص بما تم تغييره (I824c8، b/269484510).
- تمت إضافة DSL لإيقاف التحذيرات (Ic4deb، وb/331237001).
- عليك حل المشكلة للتأكُّد من أنّ مقاييس الأداء تستخدم الملفات الشخصية المرجعية التي تم إنشاؤها عندما تكون السمة
automaticGenerationDuringBuild
غير مفعَّلة (Ic144f، b/333024280) - إصلاح عمليات إلغاء خاصية المكوّن الإضافي
BaselineProfile
لمكوّن Gradle من أجل تفعيل إنشاء الملفات الشخصية المرجعية وقياس الأداء عند تخصيص نوع الإصدارnonMinified
أو مقياس الأداء (Ib8f05، b/324837887) - حلّ مشكلة تضمين الملفات الشخصية الأساسية للمكتبة في AAR قبل الإصدار 8.3.0-alpha15. (I1d2af، b/313992099)
- تم إصلاح عنوان URL لإخراج الملف الشخصي لبدء التشغيل والخط الأساسي في نهاية مهمة الإنشاء. (I802e5، b/313976958)
التغييرات الأخرى المهمة منذ 1.2.0
- تتبُّع الالتقاط
- تم تقليل خطأ EXITCODE 2 عند بدء الأداء من خطأ إلى تحذير مسجَّل.
- تفعيل تتبُّع AIDL تلقائيًا في مقاييس الأداء(يتطلب واجهة برمجة التطبيقات 28) (Ia0af2، b/341852305)
- يمكنك تفعيل تتبُّع علامة المنفذ تلقائيًا في مقاييس الأداء. يؤدي هذا الإجراء إلى تسجيل نقاط تتبُّع التنشيط على سبيل المثال. (Icfe44، b/286551983)
- زيادة مهلة بدء عملية تسجيل التتبُّع لتجنُّب حدوث أعطال عند بدء التتبُّع على الأجهزة الأبطأ (I98841 وb/329145808)
- تمت إضافة واجهات برمجة تطبيقات
PerfettoTraceProcessor.Session.queryMetrics
عامة لواجهة برمجة التطبيقات مع صيغ JSON وtextproto وProto الثنائية (التي لم يتم فك ترميزها). يتيح لك ذلك طلب البحث عن المقاييس المضمّنة فيTraceProcessor
(I54d7f، وb/304038382). - يمكنك تفعيل حظر البداية في سجلّ تتبُّع Perfetto لتقليل خطر فقدان البيانات في بداية التتبُّع. تتوفّر هذه الميزة فقط على الإصدار 33 والإصدارات الأحدث من واجهة برمجة التطبيقات. (Ie6e41، b/310760059)
- ناتج JSON
- تمت إضافة معلومات إضافية في سياق مقياس الأداء في ناتج JSON:
context.artMainlineVersion
- إصدار صحيح من وحدة الخط الرئيسي للفنون (إذا كانت متوفّرة على الجهاز، و-1
غير ذلك)context.build.id
- يساوي android.os.Build.IDcontext.build.version.codename
- يساوي android.os.Build.VERSION.CODENAMEcontext.build.version.abbreviatedCodename
: يتوافق مع الحرف الأول من الاسم الرمزي للإصدار التجريبي (بما في ذلك الإصدارات في الإصدار) (Ie5020).
- تمت إضافة قائمة
profilerOutput
إلى إخراج JSON لتسهيل الأدوات بشأن عمليات تتبُّع تحليل البيانات (مثل Perfetto، وعمليات تتبُّع الطريقة) (I05ddd وb/332604449). - تمت إضافة تحذير عند استخدام Android Test Orchestrator في وحدات قياس الأداء، لأنّ ذلك سيؤدي إلى استبدال ملفات JSON للمخرجات لكل وحدة بشكل متكرر. (Ia1af6، b/286899049)
- يتم طرح هذه الميزة عندما تزيد أسماء الملفات عن 200 حرف لتجنُّب حدوث أعطال غير واضحة عند كتابة الملفات أو ما بعد معالجتها. (I4a5ab)
- تمت إضافة معلومات إضافية في سياق مقياس الأداء في ناتج JSON:
الإصدار 1.3.0-rc01
7 أغسطس 2024
تم طرح androidx.benchmark:benchmark-*:1.3.0-rc01
. يحتوي الإصدار 1.3.0-rc01 على عمليات التنفيذ هذه.
إصلاح الأخطاء
- إصلاح
androidx.benchmark.cpuEventCounter
التي تنتج قيمًا تالفة للأحداث التي لا تتضمّن تعليمات (I7386a، b/286306579) - يجب حلّ المشاكل
resumeTiming
/runWithTimingDisabled
للالتزام بترتيب أولوية المقياس، وتقليل تأثير عمليات إيقاف المقاييس مؤقتًا أو استئنافها بشكل كبير على نتائج المقاييس ذات الأولوية الأعلى. على سبيل المثال، في حال استخدام عدّادات أداء وحدة المعالجة المركزية (cpu) من خلال وسيطة أداةcpuEventCounter.enable
، لن تنخفض قيم TimeN بشكلٍ ملحوظ عند حدوث الإيقاف المؤقت/الاستئناف. (I39c2e، وb/286306579، وb/307445225) - انخفاض فرصة أخذ عيّنات تسلسل استدعاء الدوال البرمجية، ما يؤدي إلى عدم انتهاء المهلة الثابتة لسلسلة المحادثات الرئيسية في
measureRepeatedOnMainThread
، وذلك من خلال نقل الإحالة الناجحة من جمع عيّنات التكديس خارج سلسلة التعليمات الرئيسية. (I487a8، b/342237318) - تمت إزالة التخطيط اليدوي للوصول إلى واجهات برمجة التطبيقات الجديدة للنظام الأساسي نظرًا لحدوث ذلك تلقائيًا من خلال نماذج واجهة برمجة التطبيقات عند استخدام R8 مع AGP 7.3 أو إصدار أحدث (مثل R8 الإصدار 3.3) ولكل الإصدارات عند استخدام AGP 8.1 أو الإصدارات الأحدث (مثل D8 الإصدار 8.1). وننصح العملاء الذين لا يستخدمون AGP بالتحديث إلى الإصدار 8.1 من D8 أو الإصدارات الأحدث. يُرجى مراجعة هذه المقالة للاطّلاع على مزيد من التفاصيل. (I9496c، b/345472586)
- تمت إضافة فحص إصدار agp لإرسال اسم الحزمة كوسيطة instr. قبل AGP 8.4.0، لا يمكن إرسال اسم حزمة التطبيق المستهدف إلى تطبيق الأدوات من خلال وسيطات الأدوات. (0c72a3f)
الإصدار 1.3.0-beta02
10 يوليو 2024
تم طرح androidx.benchmark:benchmark-*:1.3.0-beta02
. يحتوي الإصدار 1.3.0-beta02 على عمليات التنفيذ هذه.
إصلاح الأخطاء
- يجب التعامل مع EXITCODE
2
برفق عند بدء Perfetto لتسجيل تحذير، ثم المتابعة.
الإصدار 1.3.0-beta01
12 يونيو 2024
تم طرح androidx.benchmark:benchmark-*:1.3.0-beta01
. يحتوي الإصدار 1.3.0-beta01 على عمليات التنفيذ هذه.
التغييرات في واجهة برمجة التطبيقات
- تمت إعادة تسمية
MethodTracing.affectsMeasurementOnThisDevice
إلىAFFECTS_MEASUREMENT_ON_THIS_DEVICE
للحفاظ على الاتساق. (I1bdfa) - تمت إضافة واجهة برمجة تطبيقات
BlackHole.consume()
التجريبية لمنع إزالة الرموز البرمجية غير الصالحة في مقاييس الأداء الدقيقة. (If6812، وb/286091643) - والآن، ستطرح مقياس الأداء المصغَّر بشكل صحيح لمنع تداخل تتبُّع الطريقة مع القياسات. يحدث ذلك على أجهزة معيّنة عند فرض تفعيل تتبُّع الطرق (من خلال وسيطات قياس الأداء أو
MicrobenchmarkConfig
)، وفي حال محاولة القياس بعد تتبُّع طريقة. تعمل الأجهزة المتأثرة بالإصدار 26-30 من واجهة برمجة التطبيقات أو إصدارات معيّنة من وحدة ART الرئيسية متأثرة بهذا التداخل، ويمكن رصدها في وقت التشغيل من خلالProfilerConfig.MethodTracing.affectsMeasurementOnThisDevice
. (Iafb92، b/303660864)
إصلاح الأخطاء
- يُنصح باستخدام إصدار Agp غير مكتمل مع 9.0.0-alpha01. (I5bbb0)
- تمت إضافة وضع التجميع إلى سياق مقياس الأداء (If5612 وb/325512900)
- تفعيل تتبُّع AIDL تلقائيًا (يتطلب واجهة برمجة التطبيقات 28) (Ia0af2 وb/341852305)
- تمت إضافة معلومات إضافية في سياق مقياس الأداء في ناتج JSON:
context.artMainlineVersion
- إصدار صحيح من وحدة الخط الرئيسي للفنون (إذا كانت متوفّرة على الجهاز، -1 غير ذلك)context.build.id
- يساويandroid.os.Build.ID
context.build.version.codename
- يساويandroid.os.Build.VERSION.CODENAME
context.build.version.abbreviatedCodename
: يتوافق مع الحرف الأول من الاسم الرمزي للإصدار التجريبي (حتى في إصدارات الإصدار) (Ie5020)
- إصلاح
StackSampling
بما يتوافق معandroidx.benchmark.profiling.sampleDurationSeconds
(Ib1d53) - غيِّر التبعية الشائعة للماكرو-> إلى
api()
، بحيث يسهل استخدامها، على سبيل المثال.PerfettoTrace
وPerfettoConfig
(Icdae3, b/341851833) - تأكَّد من أنّ مهام
mergeArtProfile
وmergeStartupProfile
بانتظار إنشاء الملف الشخصي الأساسي دائمًا. (I623d6، b/343086054) - ضَع في اعتبارك حالة تفعيل الصيغة عند تحديد ما إذا كان يجب تفعيل الصيغة. (I5d19e، b/343249144)
- تمت زيادة مهلة البدء التلقائية لمعالج تتبُّع الأداء. (I87e8c، b/329145808)
الإصدار 1.3.0-alpha05
14 مايو 2024
تم طرح androidx.benchmark:benchmark-*:1.3.0-alpha05
. يحتوي الإصدار 1.3.0-alpha05 على عمليات التنفيذ هذه.
إصلاح الأخطاء
- تقديم استثناء أوضح عندما يعرض مقياس ماكروبنش قيمًا صفرية لجميع التكرارات (Iab58f وb/314931695)
- قواعد إضافية للحلول البديلة تمت إضافتها إلى قواعد الحماية من الميكروبات، بما في ذلك التوافق مع قواعد المستمعين وغيرها من التحذيرات أو الأخطاء المرصودة. (I14d8f، b/329126308، b/339085669)
- يعمل تتبع الطرق كمرحلة منفصلة خلال مقياس أداء فائق، ولم يعد يؤثر في القياسات. (If9a50 وb/285912360 وb/336588271)
- تمت إضافة اقتراحات تصحيح الأخطاء إلى إسقاط رسالة تعذُّر بث أداة التظليل. (I5efa6، b/325502725)
الإصدار 1.3.0-alpha04
1 مايو 2024
تم طرح androidx.benchmark:benchmark-*:1.3.0-alpha04
. يحتوي الإصدار 1.3.0-alpha04 على عمليات التنفيذ هذه.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة صيغة
MacrobenchmarkRule#measureRepeated
التجريبية التي تتطلبPerfettoConfig
مخصّصًا لتسجيل تتبُّع Perfetto المخصّص بالكامل. تجدر الإشارة إلى أنّ الإعدادات التي تمّ ضبطها بشكل غير صحيح قد تؤدّي إلى تعذُّر تنفيذ فئات المقاييس المضمّنة. (Idfd3d، وb/309841164، وb/304038384) - إعادة تسمية "
PowerMetric.deviceSupportsPowerEnergy
" إلى "PowerMetric.deviceSupportsHighPrecisionTracking
" لمزيد من التوضيح (I5b82f) - تمت إضافة
PowerMetric.deviceBatteryHasMinimumCharge()
وPowerMetric.deviceSupportsPowerEnergy()
للسماح بتغيير مقاييس الأداء أو تخطيها استنادًا إلى إمكانية قياس طاقة الجهاز. (I6a591، b/322121218)
إصلاح الأخطاء
- إضافة مقارنة مع الملف الشخصي الأساسي السابق (I824c8 وb/269484510)
- تمت إضافة DSL لإيقاف التحذيرات (Ic4deb، وb/331237001).
- تمّ تغيير الاستثناء لسجلّ المعلومات عندما تكون خيارات قياس الأداء غير مفعَّلة (I8a517 وb/332772491).
- يمكنك تسهيل تسجيل عمليات تتبُّع الطريقة لمقياس أداء ماكرو استنادًا إلى مدة
measureBlock()
الفعلية. في السابق، بدأ التطبيق عند إطلاق العملية المستهدفة ولم يعُد متوافقًا إلا مع التشغيل على البارد (Iee85a وb/300651094). - تجنُّب العُطل عندما يكون معالج بيانات التتبُّع بطيئًا في البدء (I98841، b/329145808)
الإصدار 1.3.0-alpha03
17 أبريل 2024
تم طرح androidx.benchmark:benchmark-*:1.3.0-alpha03
. يحتوي الإصدار 1.3.0-alpha03 على عمليات التنفيذ هذه.
الميزات الجديدة
- تتم إضافة واجهات برمجة تطبيقات
PerfettoTraceProcessor.Session.queryMetrics
العامة لواجهة برمجة التطبيقات مع صيغ JSON وtextproto وProto الثنائية (التي لم يتم فك ترميزها). يتيح لك ذلك طلب البحث عن المقاييس المضمّنة في TraceProcessor (I54d7f وb/304038382). - تمت إضافة
profilerOutput
إلى ناتج JSON لتسهيل الأدوات المتعلقة بعمليات تتبُّع الملفات الشخصية (مثل Perfetto وعمليات تتبُّع الطريقة). (I05ddd، b/332604449) - تمت إضافة علامة الطاقة إلى إعدادات Perfetto Measurement. يؤدي هذا الإجراء إلى تسجيل نقاط تتبُّع التنشيط على سبيل المثال. (Icfe44، b/286551983)
- تمت إضافة وسيطة التثبيت
androidx.benchmark.profiling.skipWhenDurationRisksAnr
، ويمكن ضبطها على "خطأ" لتجنُّب تخطّي عمليات تتبُّع الطُرق عندما قد تتسبب المدة المتوقّعة في حدوث خطأ ANR. ويُنصح بشدة بتجنُّب هذا الخطأ أثناء عمليات تشغيل ميزة CI. - تمت إضافة وسيطة التثبيت التجريبية
androidx.benchmark.profiling.perfCompare.enable
، واضبط هذه القيمة على "صحيح" لتنفيذ توقيت المقارنة بين مرحلتي القياس ووضع الملفات الشخصية. مفيد، على سبيل المثال لتقييم النفقات العامة لتتبع الطرق. (I61fb4، وb/329146942)
التغييرات في واجهة برمجة التطبيقات
- تم تغيير
TraceSectionMetric.Mode
إلى فئة مختومة لتفعيل التوسيع المستقبلي بدون تعطُّل كل العبارات عند استخدام العبارات (I71f7b). - تمت إضافة
TraceSectionMetric.Mode.Average
و.Count
وإعادة ترتيب الوسيطات لكي تكون الوسيطة الأكثر شيوعًا (mode) في وقت سابق في قائمة الوسيطات، ما يقلل الحاجة إلى تحديد أسماء المعلّمات. (Ibf0b0، b/315830077، b/322167531) - تمت إعادة تسمية "
Metric.getResult
" إلى "getMeasurements
" لمطابقة نوع الإرجاع (I42595).
إصلاح الأخطاء
- عليك حل المشكلة للتأكُّد من أنّ مقاييس الأداء تستخدم الملفات الشخصية المرجعية التي تم إنشاؤها عندما تكون السمة
automaticGenerationDuringBuild
غير مفعَّلة (Ic144f، b/333024280) - إصلاح عمليات إلغاء خاصية المكوّن الإضافي
BaselineProfile
لمكوّن Gradle من أجل تفعيل إنشاء الملفات الشخصية المرجعية وقياس الأداء عند تخصيص نوع الإصدارnonMinified
أو مقياس الأداء (Ib8f05، b/324837887) - تعمل الطريقة الثابتة على تتبُّعها في مقاييس الأداء القصوى، وبالتالي يجب تسجيل عمليات تتبُّع الطريقة بالكامل وصلاحيتها، حتى على الأجهزة الأبطأ. (I6349a، b/329904950)
- يمكنك تفعيل حظر البداية في سجلّ تتبُّع Perfetto لتقليل خطر فقدان البيانات في بداية التتبُّع. تتوفّر هذه الميزة فقط على الإصدار 33 والإصدارات الأحدث من واجهة برمجة التطبيقات. (Ie6e41، b/310760059)
- تمت إضافة تحذير عند استخدام Android Test Orchestrator في وحدات قياس الأداء، لأنّ ذلك سيؤدي إلى استبدال ملفات JSON للمخرجات لكل وحدة بشكل متكرر. (Ia1af6، b/286899049)
- فرض ',' (فاصلة) فواصل الآلاف لتحقيق الاتساق في ناتج "استوديو YouTube"، مع تجاهل لغة الجهاز (I3e921، b/313496656)
- يمكن الآن استخدام الشرائح التي تم إنشاؤها باستخدام
Trace.{begin|end}AsyncSection
في تطبيقTraceSectionMetric
. (I91b32، b/300434906) - تمت إضافة Log.w / تصنيفات الاستثناء إلى جميع حالات تعذُّر رصد بدء التشغيل. وهذا لا يغير السلوك الحالي (حيث تظهر بعض الأخطاء ويفشل البعض الآخر تلقائيًا في اكتشاف الشركة الناشئة)، بل يجعل الأمر أكثر وضوحًا. وبشكل عام، تكون تلك الأخطاء التي لا تعمل في
Log.w()
وتتعذّر الإبلاغ عن مقاييس بدء التشغيل هي تلك التي لا تتضمّن أحداثًا بدون إطار، ويتم طرح استثناءات عند رصد بدء التشغيل باستثناء معلومات توقيت عرض اللقطة (من شرائح واجهة المستخدم أو الوقت الفعلي). (Id240f، b/329145809) - يمكنك إلغاء مهام dexopt في الخلفية قبل تشغيل مقياس طلبك الأساسي للحد من التداخل. (I989ed)
- تمت إضافة قياس
frameCount
إلى "FrameTimingMetric
" للمساعدة في اكتشاف الحالات التي تتغيّر فيها القياسات بسبب تغيُّر عدد اللقطات التي تم إنتاجها (تمت إضافة صور متحركة جديدة وإصلاح مشاكل الإيقاف). (I1e5aa) - تمت إضافة توضيح بأنّ
frameOverrunMs
هو المقياس المفضّل للتتبُّع عندما يكون متاحًا في "مستندات Google"، والسبب وراء ذلك. (I18749، b/329478323)
الإصدار 1.3.0-alpha02
20 مارس 2024
تم طرح androidx.benchmark:benchmark-*:1.3.0-alpha02
. يحتوي الإصدار 1.3.0-alpha02 على عمليات التنفيذ هذه.
الميزات الجديدة
دعم R8 التجريبي في الميكروباش من خلال قواعد Proguard مضمَّنة. تجدر الإشارة إلى أنّ هذا الدعم تجريبي ويتطلب الإصدار 8.3 من AGP لتصغير اختبارات وحدة المكتبة. يمكنك استخدام ما يلي لتفعيل تصغير/تحسين R8 في
build.gradle
لوحدة قياس الأداء، ما من المفترض أن يؤدي إلى زيادة كبيرة في الأداء، استنادًا إلى عبء العمل. (I738a3، b/184378053)android { buildTypes.release.androidTest.enableMinification = true }
إصلاح الأخطاء
- يعمل هذا الإجراء على إصلاح تحذير تتبُّع الطريقة ليُكون على سطر منفصل عن مخرجات البيانات الجزئية. (I0455c، b/328308833)
الإصدار 1.3.0-alpha01
21 فبراير 2024
تم طرح androidx.benchmark:benchmark-*:1.3.0-alpha01
. يحتوي الإصدار 1.3.0-alpha01 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- تمت إعادة تسمية مَعلمات
MicrobenchmarkConfig
المنطقية لتجنُّب استخدام كلمة "يجب" غير الضرورية. (Ia8f00، b/303387299) - تمت إضافة
BenchmarkRule.measureRepeatedOnMainThread
حتى تتمكّن مقاييس أداء سلاسل المحادثات الرئيسية (مثل تلك التي تؤثّر في عدد المشاهدات أو واجهات المستخدم الخاصة بالإنشاء) من تجنُّب ظهور أخطاء ANR، لا سيما عند استخدام مجموعات كبيرة في CI. (I5c86d) - تمت إضافة
FrameTimingGfxInfoMetric
، وهو تنفيذ تجريبي بديل لـFrameTimingMetric
مع الحصول على القياسات مباشرةً من النظام الأساسي، بدلاً من استخراجه من تتبُّع Perfetto. (I457cb وb/322232828) - يمكنك إضافة إمكانية تفريغ ملف شخصي ART أثناء تكرارات
warmUp
الفردية. (I17923) - تغييرات متعدّدة على
TraceSectionMetric
API:- إضافة
Mode.Min
وMode.Max
- إضافة وسيطة تصنيف لإلغاء اسم القسم كتصنيف مقياس
- تمت إضافة اسم الوضع إلى الإخراج لتوضيح معنى المقياس.
- تم تغيير الإعداد التلقائي لاحتساب المجموع، لأنّ معظم استخدام هذا المقياس مخصّص للأحداث المتكرّرة. يُرجى الانتباه إلى هذه التغييرات في استخدام ميزة CI، لأنّها قد تؤدي إلى حدوث انقطاعات في الخدمة التحليل أو فواصله. (Ic1e82، وb/301892382، وb/301955938)
- إضافة
إصلاح الأخطاء
- تم تحسين رسالة الخطأ في مكوّن Gradle الإضافي للملف الشخصي الأساسي في حال عدم توفّر جهاز مُدار محدّد (Idea2b، b/313803289)
- حل مشكلة تضمين الملفات الشخصية الأساسية للمكتبة في AAR قبل الإصدار AGP 8.3.0-alpha15 (I1d2af، وb/313992099)
- عنوان URL ثابت لإخراج الملف الشخصي الأساسي والملف الشخصي لبدء التشغيل في نهاية مَهمّة الإنشاء (I802e5، b/313976958)
- تم تعديل مهلات مصدر البيانات لمحاولة إصلاح
java.lang.IllegalStateException: Failed to stop [ProcessPid(processName=perfetto, pid=...)]
(I8dc7d، b/323601788) - إضافة وسيطتين للأدوات لإلغاء سلوك إفلات أداة التظليل إلى حلول الأعطال عند قياس أداء التطبيقات بدون الإصدار
ProfileInstaller
1.3:androidx.benchmark.dropShaders.enable=true/false
: يمكن استخدام هذه السمة لتخطّي كل حالات إسقاط أداة تظليل الملفات (بما في ذلك تلك التي تمّت في عمليات إطلاقStartupMode.Cold
)، لا سيّما عند قياس أداء التطبيقات التي لا تستخدم الإصدار 1.3 من أداة تثبيت الملف الشخصي حتى الآن.androidx.benchmark.dropShaders.throwOnFailure=true/false
: يمكن استخدام هذه السمة لتجاوز حالات التعذُّر عند محاولة تجاهل أدوات التظليل، على سبيل المثال عند قياس أداء التطبيقات بدون ملف profileinstaller 1.3 (I4f573).
- يمكنك تخطّي عملية تتبُّع الطريقة في سلسلة واجهة المستخدم عندما يكون من المتوقّع أن تستغرق أكثر من بضع ثوانٍ، كما يتم تتبُّع طريقة التنظيف عند الإنهاء. (I6e768)
- يتم طرح هذه الميزة عندما تزيد أسماء الملفات عن 200 حرف لتجنُّب حدوث أعطال غير واضحة عند كتابة الملفات أو ما بعد معالجتها. (I4a5ab)
- يتم إصلاح المشكلة التي قد يتم فيها إقران اللقطات التي لم يتم إنهاؤها في بداية عملية التتبُّع ونهايتها، ما قد يؤدي إلى الإبلاغ بشكل خاطئ عن أنّ الإطارات التي لم يتم إنهاؤها في بداية عملية التتبُّع ونهايتها. (I39353، b/322232828)
- يمكنك استخدام
--skip verification
على واجهة برمجة التطبيقات 30 أو الإصدارات الأحدث عند إعادة تثبيت حزمة على واجهة برمجة التطبيقات 30-33 لمحو الملفات الشخصية لـ ART على تصاميم المستخدمين. ويساعد ذلك في تجاوز تحذيرات "Play للحماية" التي تؤدي إلى أعطال في بعض فئات الأجهزة. (Ic9e36) - يمكنك استخدام
am force-stop
لإنهاء التطبيقات عندما لا تكون تطبيقات نظام، مثل "واجهة مستخدم النظام" أو "مشغّل التطبيقات". (I5e028) - ينتظر مقياس أداء الماكرو الآن
1 second
حتى يمسح التطبيق المستهدف ملف ART الشخصي (كان ينتظر500 ms
سابقًا). (I85a50، b/316082056) - يتم تحسين خطأ
FrameTimingMetric
في حال عدم إنشاء الإطارات، وإرسال رابط الإخراج دائمًا للتتبّع في حال تعذّر تحليل المقاييس للمساعدة في تشخيص المشكلة. (I956b9) - تم إصلاح عُطل في
FrameTimingMetric
تعذُّر تحليل رقم تعريف الإطار، خاصةً على بعض أجهزة المصنّع الأصلي للجهاز. (Ia24bc، وb/303823815، وb/306235276) - تم تخفيف التشدّد في عمليات التحقّق في
FrameMetrics
، وتمّت إضافة المزيد من التفاصيل إلى رسائل الخطأ. (Iadede)
الإصدار 1.2
الإصدار 1.2.4
17 أبريل 2024
تم طرح androidx.benchmark:benchmark-*:1.2.4
. يحتوي الإصدار 1.2.4 على عمليات الالتزام هذه.
إصلاح الأخطاء
- إصلاح عدم إعداد srcset للملف الشخصي الأساسي في صيغ مقياس الأداء. يعمل أيضًا على إصلاح
automaticGenerationDuringBuild
في المكتبات التي تتسبب في تبعية دائرية. (I28ab7، b/333024280) - يمكنك استخدام
am force-stop
لإنهاء التطبيقات عندما لا تكون تطبيقات نظام، مثل "واجهة مستخدم النظام" أو "مشغّل التطبيقات". يعمل هذا الإجراء على إصلاح أعطالStartupMode.COLD
في مقاييس الأداء من "يجب ألا يتم تشغيل الحزمة $package قبل التشغيل على البارد!" بسبب عدم نجاح العملية بالكامل. (I5e028)
الإصدار 1.2.3
24 يناير 2024
تم طرح androidx.benchmark:benchmark-*:1.2.3
. يحتوي الإصدار 1.2.3 على هذه الالتزامات.
إصلاح الأخطاء
- تمت إزالة الاستثناء من مكوّن Gradle الإضافي للملف الشخصي الأساسي عندما يكون الإصدار AGP من الإصدار 8.3.0 أو إصدارًا أحدث.
- حلّ مشكلة تضمين الملفات الشخصية الأساسية للمكتبة في AAR قبل الإصدار 8.3.0-alpha15.
الإصدار 1.2.2
1 كانون الأول (ديسمبر) 2023
تم طرح androidx.benchmark:benchmark-*:1.2.2
. يحتوي الإصدار 1.2.2 على عمليات الالتزام هذه.
الملفات الشخصية المرجعية
- ستعرض سجلّات التنفيذ مسار ملف إخراج الملف الشخصي الأساسي باعتباره معرّف موارد منتظم (URI) لملف محلي (aosp/2843918 وaosp/2853665 وb/313976958)
الإصدار 1.2.1
15 تشرين الثاني (نوفمبر) 2023
تم طرح androidx.benchmark:benchmark-*:1.2.1
. يحتوي الإصدار 1.2.1 على عمليات الالتزام هذه.
الميزات الجديدة
- تم تحسين رسالة الخطأ عندما يوقف المستخدم خيارات الاختبار (b/307478189).
- إضافة مواقع تتيح دمج عمليات الاختبار في AS (b/309805233)، (b/309116324)
الإصدار 1.2.0
18 تشرين الأول (أكتوبر) 2023
تم طرح androidx.benchmark:benchmark-*:1.2.0
. يحتوي الإصدار 1.2.0 على عمليات الالتزام هذه.
تغييرات مهمة منذ الإصدار 1.1.0
الملفات الشخصية المرجعية
- يعمل المكوّن الإضافي الجديد لنظام Gradle المتوافق مع خط الأساس على تلقائيًا التقاط الملفات الشخصية الأساسية وتضمينها في سير عمل الاختبار والإصدار.
- أصبحت
BaselineProfileRule.collect
مستقرة الآن، وهي نسخة مبسّطة ومبسّطة من واجهة برمجة تطبيقاتBaselineProfileRule.collectBaselineProfile
التجريبية السابقة.- ما عليك سوى تحديد
packageName
، وتشغيل التطبيق
- ما عليك سوى تحديد
- بالنسبة إلى المكتبات التي تنشئ ملفات شخصية أساسية، يمكنك الآن فلترة القواعد التي تم إنشاؤها إما في الرمز (وسيطة
BaselineProfileRule.collect
) أو بشكل أكثر بساطة في المكوّن الإضافي Gradle - الإصلاحات
- إصلاح مجموعة الملفات الشخصية الأساسية على Android U+ (Id1392، وb/277645214)
مقياس الأداء الكلي
- التحويل البرمجي
- يُعيد مقياس أداء الماكرو الآن بشكلٍ صحيح حالة التجميع لكل تجميع، ما يتطلب إعادة تثبيت حزمة APK قبل الإصدار Android 14، لذا يُنصح بشدة بقياس الأداء على الإصدار 14 من نظام التشغيل Android والإصدارات الأحدث إذا أردت الاحتفاظ بالحالة (مثل تسجيل دخول المستخدم) في ما يتم قياسه.
- يمكنك أيضًا التغلب على هذه المشكلة عن طريق التحكّم في تجميع التطبيقات بشكل منفصل، وتخطي التجميع باستخدام
CompilationMode.Ignore()
أو وسيطة الأدوات.
وسيطات قياس حالة التطبيق
- إتاحة وسيطة قياس الأداء
androidx.benchmark.dryRunMode.enable
(متوفّرة حاليًا في مقياس الأداء المصغَّر) لعمليات التحقّق من الصحة بشكل أسرع (مثلاً عند إنشاء مقياس الأداء أو في الإرسال المسبق) - الدعم لـ
androidx.benchmark.profiling.mode=StackSampling
وMethodTracing
. - تمت إضافة
androidx.benchmark.enabledRules
للسماح بفلترة الملف الشخصي الأساسي لبيئة التشغيل مقارنةً باختبارات قواعد مقاييس الأداء المجمّعة. - تمت إضافة الوسيطة
androidx.benchmark.perfettoSdkTracing.enable
لتفعيل التتبّع باستخدام tracing-perfetto، مثلاً. إنشاء تتبع إعادة التركيب. يُرجى العِلم بأنّه عند استخدام السياسة معStartupMode.COLD
، سيتأثر التوقيت بشكل كبير، حيث يتم تحميل مكتبة التتبُّع وتفعيلها أثناء بدء تشغيل التطبيق.
- إتاحة وسيطة قياس الأداء
المتطلبات
- يتطلّب مقياس أداء الماكرو الآن الإصدار 1.3.0 أو الإصدارات الأحدث من
ProfileInstaller
في التطبيق المستهدَف لتفعيل التقاط أو إعادة ضبط الملف الشخصي ومحو ذاكرة التخزين المؤقت في أداة التظليل.
- يتطلّب مقياس أداء الماكرو الآن الإصدار 1.3.0 أو الإصدارات الأحدث من
واجهات برمجة تطبيقات المقاييس التجريبية الجديدة
- تمت إضافة الإصدار التجريبي
TraceSectionMetric
الذي يسمح باستخراج التوقيت البسيط من وحداتtrace("") {}
في تطبيقك، أو TraceMetric للاستفادة من إمكانية طلب البحث الكاملة في PerfettoTraceProcessor
. - تمت إضافة الإصدار التجريبي
PowerMetric
لتسجيل معلومات استخدام الطاقة. - تمت إضافة السمة
MemoryCountersMetric
التجريبية لاحتساب أخطاء الصفحة. - تمت إضافة واجهة برمجة التطبيقات
PerfettoTraceProcessor
التجريبية، التي يتم استخدامها داخليًا لاستخراج المقاييس من عمليات تتبُّع النظام (المعروفة أيضًا باسم عمليات تتبُّع Perfetto).
- تمت إضافة الإصدار التجريبي
الإصلاحات
- تم إصلاح الأعطال عند تثبيت الملفات الشخصية أو استخراجها من تطبيق مثبَّت من حِزم APK متعددة (مثلاً من حِزمة التطبيق).
- تم إصلاح
FrameTimingMetric
مع تجاهل الإطارات ذات أرقام تعريف الإطارات غير المتسقة (بشكل عام، الإطارات أثناء التموجات على واجهة برمجة التطبيقات 31 أو الإصدارات الأحدث) (I747d2، b/279088460) - إصلاح أخطاء التحليل في التتبعات > 64 ميغابايت (Ief831، وb/269949822)
- تم توضيح الأخطاء عند عدم ضبط صورة نظام التشغيل للجهاز (خاصةً المحاكي) بشكل صحيح لأغراض التتبُّع أو التجميع.
- تخطّي عملية التحقّق من مستوى شحن البطارية للأجهزة التي لا تتضمّن بطارية (الدقة الصغيرة والكبيرة)
- إخراج ملف محسَّن مع تضمين أخطاء أكثر وضوحًا لأدلة الإخراج غير الصالحة وإعدادات تلقائية أكثر أمانًا
- تم تحسين ثبات
StartupMode.COLD
من خلال إسقاط ذاكرة التخزين المؤقت الخاصة بأداة التظليل بشكل مستمر (يتم عرضها أيضًا من خلالMacrobenchmarkScope.dropShaderCache
). - تم إصلاح خلفية شاشة الاستراحة لـ "
startActivityAndWait
".
مقياس الأداء المصغَّر
- الميزات
- تم نقل عملية التحليل إلى مرحلة منفصلة بعد استخدام مقاييس أخرى، لذلك يمكن أن يعرض إجراء اختبار واحد توقيتًا دقيقًا ونتائج التحليل.
- واجهات برمجة التطبيقات التجريبية
- تمت إضافة واجهة برمجة التطبيقات
MicrobenchmarkConfig
التجريبية لتحديد المقاييس المخصّصة وضبط إعدادات التتبُّع وإنشاء الملفات الشخصية. ويمكن استخدامها لالتقاط صور تتبُّع الطُرق أو التقاط نقاط التتبُّع (ولكن مع الانتباه إلى التتبُّع العلوي). - تمت إضافة واجهات برمجة تطبيقات تجريبية للتحكّم في
BenchmarkState
بشكل منفصل عنBenchmarkRule
، بدون JUnit. - تمت إضافة سجلّ
PerfettoTrace
التجريبي لتفعيل تسجيل تتبُّع Perfetto، باستخدام إعدادات مخصّصة، منفصلة عن واجهات برمجة التطبيقات لقياس الأداء.
- تمت إضافة واجهة برمجة التطبيقات
- الإصلاحات
- تم حلّ مشكلة عدم توفّر مسافات بيضاء سابقة في نتائج قياس الأداء في "استوديو Android".
- يجب حل المشكلة التي قد تؤدي إلى تعذُّر طباعة التحذيرات في ناتج "مقاييس الأداء" في "استوديو Android".
- تم إصلاح تعطُّل
SampledProfiling
في نظام التشغيل Android 13 (واجهة برمجة التطبيقات 33) والإصدارات الأحدث. - تم تحسين أداء "
dryRunMode
" بشكلٍ كبير من خلال تخطّي السياسةIsolationActivity
وتتبُّع Perfetto (وضع التشغيل التجريبي الأسرع بمقدار 10 مرات في الإصدارات القديمة من نظام التشغيل).
الإصدار 1.2.0-rc02
6 تشرين الأول (أكتوبر) 2023
تم طرح androidx.benchmark:benchmark-*:1.2.0-rc02
. يحتوي الإصدار 1.2.0-rc02 على هذه عمليات التنفيذ.
إصلاح الأخطاء
- إصلاح ناتج ملف "قياس الأداء" حتى لا يعطّل نسخ ملف المكوّن الإضافي
BaselineProfile
بعد الآن. تم إنشاء الملفات ونسخها خارج الجهاز، ولكن تمت إعادة تسميتها حتى لا يتمكّن المكوّن الإضافي لـ Gradle من الاطّلاع عليها. (I8dbcc، b/303034735، b/296453339) - تم توضيح رسائل خطأ تحميل
tracing-perfetto
عند الإدخال من وحدة قياس أداء الماكرو إلى التطبيق المستهدف.
الإصدار 1.2.0-rc01
20 أيلول (سبتمبر) 2023
تم طرح androidx.benchmark:benchmark-*:1.2.0-rc01
. يحتوي الإصدار 1.2.0-rc01 على هذه عمليات التنفيذ.
إصلاح الأخطاء
- تم الآن تطبيق استثناء (مع تعليمات الانتصاف) عند تعذُّر إكمال تتبُّع حزمة تطوير البرامج (SDK) في Perfetto في مقياس أداء. (I6c878، b/286228781)
- إصلاح عطل OOM عند تحويل تتبُّع طريقة ART -> تحسين الأداء. (I106bd، b/296905344)
- (مقياس أداء فائق) تم توضيح تصنيف تتبُّع الطريقة عند الربط في نتائج اختبار "استوديو YouTube" الثابتة، وأن تكون أسماء ملفات تتبُّع الطرق الثابتة فريدة على الجهاز/المضيف، حتى لا يتم استبدالها عند تنفيذ أكثر من مقياس أداء واحد. (I08e65، b/285912360)
- تضمن أن يكون الجهاز نشطًا عند التقاط صورة ملف شخصي مرجعي. (I503fc)
الإصدار 1.2.0-beta05
30 آب (أغسطس) 2023
تم طرح androidx.benchmark:benchmark-*:1.2.0-beta05
. يحتوي الإصدار 1.2.0-beta05 على عمليات التنفيذ هذه.
الميزات الجديدة
- المكوّن الإضافي لنظام Gradle المتوافق مع Baseline Profile متوافق الآن مع الإصدار 8.3 من المكوّن الإضافي Android Gradle. (aosp/2715214)
الإصدار 1.2.0-beta04
23 آب (أغسطس) 2023
تم طرح androidx.benchmark:benchmark-*:1.2.0-beta04
. يحتوي الإصدار 1.2.0-beta04 على عمليات التنفيذ هذه.
الميزات الجديدة
- أصبح المكوّن الإضافي لنظام Gradle المتوافق مع الأجهزة الأساسية متوافقًا مع الإصدار 8.3 من المكوّن الإضافي لنظام Gradle المتوافق مع Android. (aosp/2715214)
إصلاح الأخطاء
- إصلاح الأخطاء في كتابة / نقل الملفات وسحبها (خاصةً تلك المتعلقة بالاختبارات التي تتضمّن مَعلمات) عن طريق إجراء تحسينات إضافية على أسماء ملفات الإخراج وتجنُّب '=' و":" في أسماء ملفات الإخراج. (I759d8)
الإصدار 1.2.0-beta03
9 آب (أغسطس) 2023
تم طرح androidx.benchmark:benchmark-*:1.2.0-beta03
. يحتوي الإصدار 1.2.0-beta03 على هذه الالتزامات.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة وسيطة لفلترة
TraceSectionMetric
على الحزمة المستهدفة فقط، وتفعيلها تلقائيًا (Ia219b، b/292208786).
إصلاح الأخطاء
- تمت إعادة تسمية وسيطة أداة
fullTracing.enable
إلىperfettoSdkTracing.enable
لتحقيق الاتساق مع اسم العنصر والمراجع الأخرى. سيواصل "fullTracing.enable
" العمل كإجراء احتياطي. (I7cc00) - ستظهر الآن نقاط التتبّع الداخلية في مكتبة مقاييس الأداء (بما في ذلك حلقة مقاييس الأداء المصغَّرة/تتبُّع المراحل) في عارض تتبُّع نظام "استوديو YouTube"، وسيتم دمجها في العملية الصحيحة في Perfetto. (I6b2e7، b/293510459)
- تمت إزالة خطأ معيار الماكرو NOT-PROFILEABLE على الإصدار 31 والإصدارات الأحدث من واجهة برمجة التطبيقات، وتخطّي عملية التحقّق القابلة للملف الشخصي على الأجهزة المزوّدة بإذن الوصول إلى الجذر eng/userdebug. (I2amac، b/291722507)
- عند استخدام تحسينات تنسيق Dex، يتم الآن أيضًا اعتبار قواعد الملف الشخصي لبدء التشغيل كقواعد للملف الشخصي المرجعي. (aosp/2684246 وb/293889189)
الإصدار 1.2.0-beta02
26 تموز (يوليو) 2023
تم طرح androidx.benchmark:benchmark-*:1.2.0-beta02
. يحتوي الإصدار 1.2.0-beta02 على عمليات التنفيذ هذه.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة واجهات برمجة تطبيقات تجريبية للمقاييس والإعدادات المخصَّصة على الأجهزة المجهرية (مثل محلّل، والتتبُّع). (I86101، b/291820856)
إصلاح الأخطاء
- الإبلاغ عن خطأ في وحدة الماكرو عندما يتم تكوين نظام التشغيل بشكل خاطئ للتتبع، كما تم إصلاحه مؤخرًا في محاكيات واجهة برمجة التطبيقات 26/28 ARM64. (I0a328، b/282191686)
- تمت إضافة تفاصيل حول تعذُّر إعادة ضبط البيانات المجمّعة لاقتراح تحديث المحاكي، وذلك لأنّ بعض أدوات المحاكاة التي أصلحت هذه المشكلة مؤخرًا. (I8c815، b/282191686)
- جعل
androidx.test.uiautomator:uiautomator:2.2.0
هيapi
بدلاً من استخدام يعتمد علىimplementation
. (I1981e)
الإصدار 1.2.0-beta01
18 تموز (يوليو) 2023
تم طرح androidx.benchmark:benchmark-*:1.2.0-beta01
. يحتوي الإصدار 1.2.0-beta01 على عمليات التنفيذ هذه.
إصلاح الأخطاء
- إصلاح التحذيرات التي يتم إيقافها أحيانًا في مخرجات "مقاييس الأداء" في "استوديو YouTube"، وحلّ بديل للمسافات البيضاء البادئة من ناتج مقياس الأداء الذي لا تظهر في "استوديو YouTube" (Ia61d0 وb/227205461 وb/286306579 وb/285912360)
- تم إصلاح تعليق
FrameTimingMetric
. يُسمى المقياس الفرعيframeDurationCpuMs
. (Ib097f، b/288830934).
الإصدار 1.2.0-alpha16
21 حزيران (يونيو) 2023
تم طرح androidx.benchmark:benchmark-*:1.2.0-alpha16
. يحتوي الإصدار 1.2.0-alpha16 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- تمت إعادة تسمية واجهة برمجة التطبيقات
BaselineProfileRule.collectBaselineProfile()
إلىBaselineProfileRule.collect()
. (I4b665)
إصلاح الأخطاء
- إتاحة معيار ماكرو لـ
androidx.benchmark.profiling.mode = MethodTracing
. (I7ad37، b/285912360) - تم نقل تحليل قياس الأداء المصغّر إلى مرحلة منفصلة، لكي يحدث بالتسلسل بعد القياس، بدلاً من استبداله. يتم أيضًا تضمين
MethodTracing
قسم تتبُّع في تتبُّع Perfetto الذي تم تسجيله، في حال توفُّره. (I9f657، b/285014599) - أضِف قياس العدد إلى
TraceSectionMetric
باستخدامMode.Sum
. (Ic121a، b/264398606)
الإصدار 1.2.0-alpha15
7 حزيران (يونيو) 2023
تم طرح androidx.benchmark:benchmark-*:1.2.0-alpha15
. يحتوي الإصدار 1.2.0-alpha15 على هذه عمليات التنفيذ.
الميزات الجديدة
- تمت إضافة
MemoryUsageMetric
التجريبي لتتبُّع استخدام الذاكرة لأحد التطبيقات المستهدفة. (I56453، b/133147125، b/281749311) - يمكنك إضافة دعم لإعدادات Perfetto المخصّصة بالكامل باستخدام
PerfettoTrace.record
(If9d75، وb/280460183). - تمت إضافة موقع لتخطّي إنشاء الملف الشخصي الأساسي. الاستخدام:
./gradlew assemble -Pandroidx.baselineprofile.skipgeneration
(I37fda، b/283447020)
التغييرات في واجهة برمجة التطبيقات
- دائمًا ما تنشئ واجهة برمجة التطبيقات
collectBaselineProfile
API دائمًا ملفات شخصية أساسية ثابتة. تمّت إزالة واجهة برمجة التطبيقاتcollectStableBaselineProfile
ويجب استخدامcollectBaselineProfile
بدلاً منها. (I17262، b/281078707) - تم تغيير وسيطة
filterPredicate
فيBaselineProfileRule
إلى غير خالية، وبقيمة تلقائية مكافئة ليصبح سلوك الفلتر التلقائي أكثر وضوحًا في المستندات. (I3816e)
إصلاح الأخطاء
- يمكنك إيقاف تتبُّع كل من
IsolationActivity
وPerfetto فيdryRunMode
لتحسين الأداء بشكل كبير، حيث كانت هذه العمليات معظم أوقات التشغيل. (Ie4f7d) - إتاحة أخذ عينات من حِزم الاتصال في مقاييس الأداء الماكرو باستخدام وسيطتَي اختبار الأدوات
androidx.benchmark.profiling.mode=StackSampling
وandroidx.benchmark.profiling.sampleFrequency
(I1d13b، b/282188489) - يتم إصلاح التعطُّل عند إسقاط أدوات التظليل على Android U (واجهة برمجة التطبيقات 34)، وكذلك في أدوات المحاكاة. (I031ca، b/274314544)
الإصدار 1.2.0-alpha14
3 أيار (مايو) 2023
تم طرح androidx.benchmark:benchmark-*:1.2.0-alpha14
. يحتوي الإصدار 1.2.0-alpha14 على هذه عمليات التنفيذ.
إصلاح الأخطاء
- إصلاح
FrameTimingMetric
مع تجاهل الإطارات التي تحتوي على أرقام تعريف غير متسقة للإطارات وقد يؤدي ذلك إلى تجاهل بعض الصور المتحركة في إصدارات النظام الأساسي الحديثة (واجهة برمجة التطبيقات 31 والإصدارات الأحدث) للعديد من الإطارات بينما كانRenderThread
يتحرك (مثلاً أثناء التموّج). (I747d2، b/279088460) - تم إصلاح معالج بيانات التتبُّع عند تحليل البيانات التي يزيد حجمها عن 64 ميغابايت. (Ief831، b/269949822)
- تم إصلاح تعذُّر إنشاء الملف الشخصي الأساسي على Android U بسبب اختلاف إخراج أمر
pm dump-profiles
. (Id1392، b/277645214) - إصلاح النص البرمجي لقفل ساعة وحدة معالجة الرسومات لمقارنة السلاسل بشكل صحيح (I53e54 وb/213935715)
الإصدار 1.2.0-alpha13
5 نيسان (أبريل) 2023
تم طرح androidx.benchmark:benchmark-*:1.2.0-alpha13
. يحتوي الإصدار 1.2.0-alpha13 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة مَعلمة نوع الملف الشخصي عند إنشاء ملفات شخصية مرجعية لدعم الميزة القادمة في الملف الشخصي للشركة الناشئة (Ie20d7 وb/275093123).
- تمت إضافة واجهة برمجة تطبيقات
TraceMetric
تجريبية جديدة لتحديد المقاييس المخصّصة بالكامل استنادًا إلى محتوى تتبُّع Perfetto. (I4ce31، b/219851406) - إضافة مقياس تجريبي لتحديد عدد أخطاء الصفحة خلال أحد مقاييس الأداء (I48db0)
الإصدار 1.2.0-alpha12
22 آذار (مارس) 2023
تم طرح androidx.benchmark:benchmark-*:1.2.0-alpha12
. يحتوي الإصدار 1.2.0-alpha12 على عمليات التنفيذ هذه.
الميزات الجديدة
- تم إطلاق مكوّن Gradle الجديد للملف الشخصي الأساسي في إصدار ألفا، ما يسهِّل إنشاء ملف شخصي أساسي وتبسيط سير عمل المطوِّر.
التغييرات في واجهة برمجة التطبيقات
- تمت إزالة إمكانية تتبُّع Perfetto في الإصدارَين 21 و22 من واجهة برمجة التطبيقات، والتي تتضمّن كلاً من مقاييس الأداء المصغّرة وواجهات برمجة تطبيقات
PerfettoTrace
التجريبية. قبل هذا الإصدار، لم يكن اتصالUiAutomation
موثوقًا على بعض الأجهزة. (I78e8c) - تمت إضافة واجهة برمجة تطبيقات تجريبية علنية للتطبيق
PerfettoTraceProcessor
من أجل تفعيل تحليل محتوى التتبُّع. هذه خطوة نحو المقاييس المخصَّصة بالكامل استنادًا إلى بيانات تتبُّع Perfetto. (I2659e، b/219851406)
الإصدار 1.2.0-alpha11
8 آذار (مارس) 2023
تم طرح androidx.benchmark:benchmark-*:1.2.0-alpha11
. يحتوي الإصدار 1.2.0-alpha11 على هذه عمليات التنفيذ.
إصلاح الأخطاء
- تم إصلاح الأعطال في
MacrobenchmarkRule
وBaselineProfileRule
عند إعادة تثبيت الملفات الشخصية أو استخراجها من حِزمة تطبيق تتضمّن حِزم APK متعددة. (I0d8c8، b/270587281)
الإصدار 1.2.0-alpha10
22 شباط (فبراير) 2023
تم طرح androidx.benchmark:benchmark-*:1.2.0-alpha10
. يحتوي الإصدار 1.2.0-alpha10 على هذه عمليات التنفيذ.
الميزات الجديدة
- في الإصدار 14 من نظام التشغيل Android والإصدارات الأحدث، لم يعُد مقياس MAX إمكانية إعادة تثبيت التطبيقات المُستهدَفة لإعادة ضبط حالة التجميع، وذلك بفضل ميزة النظام الأساسي الجديدة. في السابق، كان من الضروري أن يكون لديك جهاز جذر، أو التعامل مع جميع حالات التطبيق (مثل تسجيل دخول المستخدم) التي تتم إزالتها قبل تشغيل كل مقياس أداء. (I9b08c، b/249143766)
إصلاح الأخطاء
- يجب إصلاح الخطأ في
DryRunMode
لكي لا يتعطّل بعد الآن عندما يكون الملف الشخصي فارغًا بسبب تخطّي عملية التجميع. بدلاً من ذلك، فإنه يقوم بتشغيل تكرار واحد ويستخرج الملف الشخصي لضمان تسجيل شيء ما. (I2f05d، b/266403227) - إصلاح عطل
PowerMetric
عند التحقق من وجود Powerstats على مستويات واجهة برمجة التطبيقات القديمة (5faaf9، وb/268253898)
الإصدار 1.2.0-alpha09
11 كانون الثاني (يناير) 2023
تم طرح androidx.benchmark:benchmark-*:1.2.0-alpha09
. يحتوي الإصدار 1.2.0-alpha09 على هذه عمليات التنفيذ.
إصلاح الأخطاء
- تم تفعيل تمرير
None
إلىandroidx.benchmark.enabledRules
وسيطة لعرض كل مقاييس الأداء / إنشاء الملف الشخصي الأساسي. (I3d7fd، b/258671856) - إصلاح التقاط
PerfettoTrace
في وحدات التطبيق (أي حِزم APK للاختبار غير الذاتي) (I12cfc) - تم إصلاح ترتيب وسيطة سحب Adb للملف الشخصي الأساسي في إخراج "استوديو YouTube" (I958d1، b/261781624)
- أصبح واجهة برمجة التطبيقات 33 لمحاكي مجموعة الأجهزة تُعرف الآن بشكل صحيح على هذا النحو عند محاولة تشغيل معيار ماكرو وسيطبع التحذير بشكل صحيح. (69133b،b/262209591)
- تخطّي عملية التحقّق من مستوى شحن البطارية على الأجهزة التي لا تحتوي على بطارية في طلبك في Mirrorمقياس الأداء (fe4114 وb/232448937)
الإصدار 1.2.0-alpha08
7 كانون الأول (ديسمبر) 2022
تم طرح androidx.benchmark:benchmark-*:1.2.0-alpha08
. يحتوي الإصدار 1.2.0-alpha08 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة واجهتَي برمجة تطبيقات تجريبيتَين
PerfettoTrace.record {}
وPerfettoTraceRule
لتسجيل عمليات تتبُّع Perfetto (المعروفة أيضًا باسم "تتبُّع أداء النظام") كجزء من الاختبار لفحص سلوك الاختبار وأدائه. (I3ba16) - تقبل
BaselineProfileRule
الآن اسم فلتر فلتر بدلاً من قائمة بادئات الحزمة. يمنح هذا الاختبار تحكمًا كاملاً في الفلترة. (I93240) - أضِف واجهة برمجة تطبيقات
BaselineProfileRule.collectStableBaselineProfile
تجريبية، وهي تنتظر حتى يصبح الملف الشخصي الأساسي ثابتًا لعدد N من التكرارات. (I923f3) - يمكنك إضافة إمكانية تحديد بادئة اسم ملف الناتج عند إنشاء ملفات شخصية أساسية باستخدام
BaselineProfileRule
. (I7b59f، b/260318655)
إصلاح الأخطاء
- يمكنك تحسين أمان كتابة إخراج الملفات، من المفترض أن تمنع كتابة أو إلحاق ملفات الإخراج بدون تنبيه صوتي، وخاصةً على واجهة برمجة التطبيقات 21/22. (If8c44 وb/227510293)
- يجب إصلاح نتائج تتبُّع
simpleperf
لإنشاء الملف ووضعه بشكل صحيح. من المفترض أن يؤدي هذا أيضًا بشكل عام إلى إصلاح المشكلات التي يفشل فيها سحب الملف بواسطة gradle. (I12a1c، b/259424099) - تحسين رسالة خطأ أداة تثبيت الملف الشخصي المطبوعة عندما تكون أداة تثبيت الملف الشخصي قديمة جدًا يتطلّب ذلك الآن تحديث إصدار أداة تثبيت الملف الشخصي (1.2.1) لقياس الملفات الشخصية الأساسية على الإصدارات من 31 إلى 33 من واجهة برمجة التطبيقات، بدلاً من الإشارة إلى أنّها غير متاحة. (Ia517f، b/253519888)
- إصلاح العديد من إخفاقات أوامر واجهة الأوامر onerror message <=23
- يمكنك ترتيب قواعد الملف الشخصي التي تم إنشاؤها تلقائيًا لتقليل عدد التغييرات عند تغييرها بمرور الوقت (عند تسجيل قواعد الملف الشخصي في عنصر تحكُّم المصدر). (Ie2509)
- العُطل الذي تم إصلاحه في الإصدارات التي لم يتوفّر لها جذر في إصدارات أقدم من Android 13 (واجهة برمجة التطبيقات 33) مع الرسالة
Expected no stderr from echo 3 > /proc/sys/vm/drop_caches
(I6c245، b/259508183)
المشاكل المعروفة
- قد يتعطّل MacrobenchmarkScope.dropShaderCache()
بسبب عدم توفّر سجلّ بث في بيان أداة تثبيت الملف الشخصي، والذي لم يتم إصداره بعد. (I5c728، b/258619948) لحل المشكلة في profileinstaller:1.3.0-alpha02
، أضف ما يلي إلى ملف AndroidManifest.xml لتطبيقك (وليس مقياس الأداء):
<!-- workaround bug in profileinstaller 1.3.0-alpha02, remove when updating to alpha03+ -->
<receiver
android:name="androidx.profileinstaller.ProfileInstallReceiver"
android:permission="android.permission.DUMP"
android:exported="true">
<intent-filter>
<action android:name="androidx.profileinstaller.action.BENCHMARK_OPERATION" />
</intent-filter>
</receiver>
الإصدار 1.2.0-alpha07
9 تشرين الثاني (نوفمبر) 2022
تم طرح androidx.benchmark:benchmark-*:1.2.0-alpha07
. يحتوي الإصدار 1.2.0-alpha07 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- تتم إضافة واجهة برمجة تطبيقات
PowerMetric
لقياس الطاقة والقوة في مقاييس الأداء الماكرو. (Ife601 وb/220183779) - تم إصلاح
MacrobenchmarkScope.dropShaderCache()
لإسقاط ذاكرة التخزين المؤقت لأداة التظليل. يساعد ذلك في إزالة تشويش حوالي 20 ملّي ثانية من مقاييس أداء "StartupMode.COLD
"، لأنّه يتم الآن محو أدوات التظليل باستمرار في كل تكرار. في السابق، كان يتم تسجيل الأرقام السريعة بشكل غير صحيح في طريقة تجميعPartial
باستخدام التكرارات التحضيرية، لأنّه كان من المرجّح أكثر أن يحدث التخزين المؤقت في أداة التظليل أثناء عملية الإحماء. يتطلب هذا الإصلاح جهازًا مزوّدًا بإذن الوصول إلى الجذر أو استخدامprofileinstaller:1.3.0-alpha02
في التطبيق المستهدَف. للاطّلاع على التغييرات في واجهة برمجة التطبيقات في مكتبةProfileInstaller
، يُرجى الانتقال إلى صفحة ProfileInstaller 1.30-alpha02. (Ia5171، b/231455742) - تمت إضافة
TraceSectionMode("label", Mode.Sum)
، ما يسمح بقياس إجمالي الوقت المستغرَق في أقسام تتبُّع متعددة تحمل التصنيف نفسه. على سبيل المثال، سيبلغ مقياسTraceSectionMetric("inflate", Mode.Sum)
عن مقياسinflateMs
لإجمالي الوقت في مقياس أداء إجمالي يتم إنفاقه على التضخم. تمت أيضًا إزالة متطلب واجهة برمجة التطبيقات 29، لأنّTraceSectionMetric
تعمل معandroidx.tracing.Trace
إلى مستويات أدنى لواجهة برمجة التطبيقات باستخدامforceEnableAppTracing
في التطبيق المستهدَف. (Id7b68، b/231455742)
إصلاح الأخطاء
- تم تحسين أمان جميع أوامر واجهة الأوامر الداخلية من خلال التحقق من صحة جميع الإخراج/الأخطاء. (I5984d، وb/255402908، وb/253094958)
- حدِّد الجهاز في أمر
adb pull
للملف الشخصي الأساسي، بحيث يمكن نسخ أمر السحب ببساطة في حال توصيل أجهزة متعدّدة (ما يصل إلى محاكي واحد) (I6ac6c، b/223359380) - إضافة خطأ إذا لم يتم إعداد ملف APK لاختبار معيار الماكرو كأداة ذاتية. يمنع هذا الخطأ قياس الأداء الكلي من داخل عملية التطبيق المستهدف. خلال هذه العملية، لن تتمكّن وحدة الماكرو من تجميع التطبيق أو إيقافه أو تشغيله على البارد أو التحكّم في أذوناته الخاصة (I4279b).
- تم إصلاح مشكلة في
measureRepeated()
حيث لن يؤديStartupMode.COLD
إلى إنهاء العملية المستهدفة بعدsetupBlock
. في الوقت الحالي، لن يؤدي تفاعل "setupBlock
" مع التطبيق إلى إيقاف عملية التطبيق، وقد يكون القياس غير صالح للتشغيل على البارد. (I8ebb7)
الإصدار 1.2.0-alpha06
24 تشرين الأول (أكتوبر) 2022
تم طرح androidx.benchmark:benchmark-*:1.2.0-alpha06
. يحتوي الإصدار 1.2.0-alpha06 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- لم تعُد ميزة "
BaselineProfileRule
" تتطلّب وجود جذر على Android 13 (واجهة برمجة التطبيقات 33)، ولم تعُد في مرحلة تجريبية. (Ie0a7d، وb/250083467، وb/253094958)- يعمل هذا التغيير أيضًا على إصلاح طريقة نقل الملفات الشخصية من تطبيق إلى القرص على الأجهزة غير الجذر، ولكنه يتطلب تحديث اعتمادية أداة تثبيت الملف الشخصي للتطبيق المُستهدَف.
- لاستخدام
BaselineProfileRule
أوCompilationMode.Partial(warmupIterations)
على جهاز غير مزوّد بحق الوصول إلى الجذر، عليك أيضًا تحديث التطبيق المستهدَف لاستخدام "androidx.profileinstaller.profileinstaller:1.3.0-alpha01
". يمكّن هذا تفريغ ملف التعريف على القرص بشكل صحيح، بحيث يمكن تجميعه/استخراجه.
إصلاح الأخطاء
- تم إصلاح عطل واحد (
SampledProfiling
) في واجهة برمجة التطبيقات 33 والإصدارات الأحدث. (I40743، b/236109374)
الإصدار 1.2.0-alpha05
5 تشرين الأول (أكتوبر) 2022
تم طرح androidx.benchmark:benchmark-*:1.2.0-alpha05
. يحتوي الإصدار 1.2.0-alpha05 على هذه عمليات التنفيذ.
إصلاح الأخطاء
- إصلاح تفصيل اللقطات في عارض تتبُّع نظام "استوديو YouTube" لعمليات التتبّع التي تم تسجيلها لمقاييس الأداء (I3f3ae، b/239677443)
- تصحيح
FrameTimingMetric
لإدراجFrameOverrun
باعتباره يتطلب واجهة برمجة التطبيقات 31 بدلاً من 29 (I716dd، b/220702554) - يمكنك ضبط التكرار في
BaselineProfileRule
وطرحه بوضوح في حال عدم تثبيت الحزمة المستهدَفة (تم تنفيذ هذه القاعدة من قبل لـ AnimalMetricRule). (Ic09a3، b/227991471)
الإصدار 1.2.0-alpha04
21 أيلول (سبتمبر) 2022
تم طرح androidx.benchmark:benchmark-*:1.2.0-alpha04
. يحتوي الإصدار 1.2.0-alpha04 على هذه عمليات التنفيذ.
الميزات الجديدة
يمكنك إضافة دعم لوسيطة أداة
dryRunMode.enable
إلى مقياس الأداء المصغر (المتاح حاليًا بالميكرو) لتطوير محلي أسرع والتحقّق من أتمتة التطبيق (على سبيل المثال، في الإرسال المسبق). ويؤدي ذلك إلى إلغاء التكرارات إلى الرقم 1، وتخطّي عملية التحويل البرمجي ومنع جميع أخطاء الضبط وإيقاف نتائج ملف .json للقياس. (Ib51b4، b/175149857)في سطر أوامر Gradle:
./gradlew macrobenchmark:cC -P android.testInstrumentationRunnerArguments.androidx.benchmark.dryRunMode.enable=true
في Build.gradle:
android { defaultConfig { testInstrumentationRunnerArgument 'androidx.benchmark.dryRunMode.enable', 'true' } }
إصلاح الأخطاء
- تم إصلاح مشكلة في
StartupTimingMetric
لكي لا يتطلب إطلاق الأنشطة التي تم قياسها من خلالMacrobenchmarkScope.startActivityAndWait()
. وهذا يعني أن المقياس يمكنه التقاط عمليات التشغيل من، على سبيل المثال الإشعارات أو "Context.startActivity()
" أو التنقّل المستنِد إلى النشاط داخل التطبيق أو أوامر واجهة المستخدم (Ia2de6، b/245414235) - إصلاح الخطأ الذي قد يؤدي إلى انتهاء مهلة
startActivityAndWait
لمحاولة الانتظار حتى اكتمال التشغيل على أدوات المحاكاة عن طريق تقليل مستوى صرامة اكتشاف الإطارات. (Ibe2c6، b/244594339، b/228946895)
الإصدار 1.2.0-alpha03
7 أيلول (سبتمبر) 2022
تم طرح androidx.benchmark:benchmark-*:1.2.0-alpha03
. يحتوي الإصدار 1.2.0-alpha03 على هذه عمليات التنفيذ.
الميزات الجديدة
- تمت إضافة واجهات برمجة تطبيقات تجريبية لاستخدام
BenchmarkState
بشكل مستقل، ومنفصلة عنBenchmarkRule
/JUnit4
. (Id478f، b/228489614)
إصلاح الأخطاء
- تمت إضافة الإجراء الاحتياطي من Leanback لـ
startActivityAndWait
. (01ed77، b/242899915)
الإصدار 1.2.0-alpha02
24 آب (أغسطس) 2022
تم طرح androidx.benchmark:benchmark-*:1.2.0-alpha02
. يحتوي الإصدار 1.2.0-alpha02 على عمليات التنفيذ هذه.
التغييرات في واجهة برمجة التطبيقات
- يتم ضبط السياسة تلقائيًا على
am force stop
لمدةMacrobenchmarkScope.killProcess()
حتى عند استخدام الجذر، إلا أثناء إنشاء الملف الشخصي الأساسي. يمكن إلغاء هذا باستخدام وسيطة منطقية اختيارية. (02cce9، b/241214097)
إصلاح الأخطاء
- إتاحة إنشاء الملف الشخصي الأساسي لتطبيقات النظام (I900b8، b/241214097)
- يمكنك إتاحة التحقّق من مقاييس طاقة ODPM على الأجهزة غير المزوّدة بإذن الوصول إلى الجذر. (a38c78 وb/229623230)
الإصدار 1.2.0-alpha01
27 تموز (يوليو) 2022
تم طرح androidx.benchmark:benchmark-*:1.2.0-alpha01
. يحتوي الإصدار 1.2.0-alpha01 على هذه عمليات التنفيذ.
الميزات الجديدة
- مكوّن جديد يتيح للأداة تفعيل تتبُّع Perfetto SDK في تطبيق يعرضه (I2cc7f)
تمت إضافة وسيطة قياس الأداء
androidx.benchmark.enabledRules
لتفعيل فلترة مقاييس الماكرو المتعلقة بمقاييس الأداء فقط أو إلى إنشاء ملف شخصي مرجعي فقط. اجتياز الاختبار في "Interact فائقة" أو "BaselineProfile" لإجراء نوع واحد من الاختبارات فقط، مثل عند إنشاءBaselineProfiles
على المحاكي يمكن أيضًا استخدام القائمة المفصولة بفواصل. (I756b7، b/230371561)مثلاً: في Build.gradle لمعيار الماكرو:
android { defaultConfig { testInstrumentationRunnerArgument 'androidx.benchmark.enabledRules', 'BaselineProfile' } }
أو من سطر أوامر Gradle:
./gradlew macrobenchmark:cC -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة
PowerMetric
الجديدة لقياس مهام الطاقة والطاقة في مقاييس الأداء. (I9f39b، b/220183779) - تمت إضافة وضع تجميع جديد
CompilationMode.Ignore
لتخطّي إعادة ضبط الملف الشخصي وتجميع البيانات. (Ibbcf8، b/230453509) - تمت إضافة مَعلمة جديدة إلى
BaselineProfileRule#collectBaselineProfile
لفلترة ملف الإخراج حسب أسماء الحِزم (If7338 وb/220146561). - للسماح للمطوِّر بتفريغ الجهاز لقياس استنزاف الطاقة. (I6a6cb)
- تمت إضافة إمكانية محو ذاكرة التخزين المؤقت لأداة التظليل في
MacrobenchmarkScope
. (I32122) - للسماح لمطوّر البرامج بضبط عرض نوع المقياس وتفاصيل فئات النظام الفرعية المطلوبة. (I810c9)
- في السابق، تم طرح
UnsupportedOperationException
في مقياس الأداء إذا تم تشغيله على جهاز غير متوافق. لا يحدث الآن UOE إلا إذا تم استخدام المقياس على الجهاز غير المتوافق (مثل:PowerMetric.configure
). (I5cf20، b/227229375) - تمت إضافة
TotalPowerMetric
وTotalEnergyMetric
لقياس إجمالي الطاقة والطاقة في كل فئة نظام في مقاييس الأداء الماكرو. (I3b26b، b/224557371)
إصلاح الأخطاء
- تم إصلاح مشكلة تعذُّر إعادة ضبط الطرق المجمّعة بشكل صحيح بين كل مقياس أداء ماكرو على الإصدارات غير الجذر. ويتطلب هذا للأسف إعادة تثبيت ملف apk في كل تكرار، ما سيؤدي إلى محو بيانات التطبيق لكل مقياس ماكرو. (I31c74، b/230665435)
- إصلاح عطل في تسجيل التتبُّع على واجهة برمجة التطبيقات 21/22 (If7fd6 وb/227509388 وb/227510293 وb/227512788)
- تعديل اكتشاف اكتمال إطلاق النشاط لإصلاح مشكلة "تعذّرت قراءة أي مقاييس" هناك استثناء في مقاييس الأداء المكافئة لبدء التشغيل. (Ia517c)
الإصدار 1.1.1
الإصدار 1.1.1
9 تشرين الثاني (نوفمبر) 2022
تم طرح androidx.benchmark:benchmark-*:1.1.1
. يحتوي الإصدار 1.1.1 على عمليات الالتزام هذه.
إصلاح الأخطاء
- تعمل هذه السياسة على إصلاح
android.system.ErrnoException: open failed: EACCES
التي تحدث على بعض الأجهزة التي تعمل بالإصدار 30 من نظام التشغيل Android11 والإصدارات الأحدث. إليك حلّ مقترَح من1.2.0-alpha01
. (aosp/2072249)
الإصدار 1.1.0
الإصدار 1.1.0
15 حزيران (يونيو) 2022
تم طرح androidx.benchmark:benchmark-*:1.1.0
. يحتوي الإصدار 1.1.0 على هذه عمليات التنفيذ.
- هذا الإصدار مماثل لـ
androidx.benchmark:benchmark-*:1.1.0-rc03
.
تغييرات مهمة منذ الإصدار 1.0.0
إتاحة مقاييس أداء Jetpack Percent، تتيح لك قياس التفاعلات على مستوى التطبيقات بالكامل، مثل بدء التشغيل والتمرير، ما يوفّر إمكانية تسجيل عمليات التتبُّع قياس أقسام التتبّع
-
CompilationMode.Partial
لقياس مدى فعالية الملفات الشخصية الأساسية.@BaselineProfileRule
لإنشاء ملفات شخصية أساسية بشكلٍ تلقائي لرحلة مستخدم مهمة معيّنة.
إتاحة مقاييس التخصيص إنشاء الملفات التعريفية خلال عمليات تشغيل المقاييس الصغيرة.
الإصدار 1.1.0-rc03
1 حزيران (يونيو) 2022
تم طرح androidx.benchmark:benchmark-*:1.1.0-rc03
. يحتوي الإصدار 1.1.0-rc03 على هذه عمليات التنفيذ.
إصلاح الأخطاء
تجنَّب إعادة تثبيت الحزمة المستهدَفة في كل تكرار لمقياس الأداء. ( aosp/2093027، b/231976084)
إزالة التأخير
300ms
منpressHome()
(aosp/2086030، b/231322975)يمكنك تحسين سرعة تكرار قياس الأداء الفائق من خلال تحسين أوامر Shell المستخدمة في الخيارات المتقدمة. (aosp/2086023، b/231323582)
إتاحة أجهزة Gradle المُدارة عند إنشاء ملفات شخصية أساسية باستخدام مقاييس أداء الماكرو. (aosp/2062228، b/228926421)
الإصدار 1.1.0-rc02
11 أيار (مايو) 2022
تم طرح androidx.benchmark:benchmark-*:1.1.0-rc02
. يحتوي الإصدار 1.1.0-rc02 على هذه عمليات التنفيذ.
- يُرجى العِلم أنّ هذا الإصدار يتضمّن تغييرًا في السلوك، لأنّه تتم الآن إعادة تثبيت التطبيقات بالكامل بين كل مقياس أداء لضمان إجراء عمليات قياس دقيقة.
إصلاح الأخطاء/تغييرات السلوك
تم إصلاح مشكلة عدم إعادة ضبط تجميع التطبيقات بشكل صحيح بين مقاييس أداء الماكرو، وعدم إعادة ضبطها على الإطلاق في الإصدارات التي لم يتوفّر لها جذر. يساهم ذلك في إصلاح العديد من الحالات التي يؤدي فيها إجراء اختبارات متعدّدة إلى تأثير "
CompilationMode
" بشكلٍ طفيف أو معدوم في القياسات. لحل هذه المشكلة، يعمل التطبيق المستهدف الآن على إعادة تثبيت كل طريقة اختبار بشكل كامل، مما سيؤدي إلى محو بيانات التطبيق بين كل مقياس أداء مصغر. (I31c74، b/230665435)وبما أنّ ذلك يمنع التطبيقات من ضبط الحالة قبل إجراء الاختبارات، يمكن الآن تخطّي عملية التجميع أو إعادة التثبيت للتمكّن من حلّ هذه المشكلة. يمكنك على سبيل المثال تجميع الهدف بالكامل باستخدام أمر Shell
cmd package compile -f -m speed <package>
، ثم استبعاد خطوة التجميع الخاصة بمقياس الأداء الماكرو.مثلاً: في Build.gradle لمعيار الماكرو:
android { defaultConfig { testInstrumentationRunnerArgument 'androidx.benchmark.compilation.enabled, 'false' } }
أو من سطر أوامر Gradle:
./gradlew macrobenchmark:cC -P android.testInstrumentationRunnerArguments.androidx.benchmark.compilation.enabled=false
تمت إتاحة مشاركة وحدة بين مقاييس الأداء القصوى واختبارات إنشاء الملف الشخصي المرجعي عن طريق إضافة وسيطة مقياس
androidx.benchmark.enabledRules
. اجتياز الاختبار في "Interact فائقة" أو "BaselineProfile" لإجراء نوع واحد من الاختبارات فقط، مثل عند إنشاءBaselineProfiles
على المحاكي. (I756b7، b/230371561)مثلاً: في Build.gradle لمعيار الماكرو:
android { defaultConfig { testInstrumentationRunnerArgument 'androidx.benchmark.enabledRules', 'BaselineProfile' } }
أو من سطر أوامر Gradle:
./gradlew macrobenchmark:cC -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile
الإصدار 1.1.0-rc01
20 نيسان (أبريل) 2022
تم طرح androidx.benchmark:benchmark-*:1.1.0-rc01
. يحتوي الإصدار 1.1.0-rc01 على هذه عمليات التنفيذ.
إصلاح الأخطاء
- تستخدم الآن روابط إخراج الملف الشخصي الأساسي في "استوديو Android" اسم ملف فريدًا. وبهذه الطريقة، تعكس النتائج دائمًا أحدث نتائج استخدام
BaselineProfileRule
. ( aosp/2057008، b/228203086 )
الإصدار 1.1.0-beta06
6 نيسان (أبريل) 2022
تم طرح androidx.benchmark:benchmark-*:1.1.0-beta06
. يحتوي الإصدار 1.1.0-beta06 على هذه الالتزامات.
إصلاح الأخطاء
- إصلاح عطل في تسجيل التتبُّع على واجهة برمجة التطبيقات 21/22 (If7fd6 وb/227509388)
- تعديل اكتشاف اكتمال إطلاق النشاط لإصلاح مشكلة "تعذّرت قراءة أي مقاييس" هناك استثناء في مقاييس الأداء المكافئة لبدء التشغيل. (Ia517c)
- إصلاح مقاييس بدء التشغيل لمقاييس الأداء القصوى عند استخدام
CompilationMode.None()
قبل هذا التغيير، كان يبدو أنّ أداءCompilationMode.Partial()
أبطأ منCompilation.None()
. (611ac9).
الإصدار 1.1.0-beta05
23 آذار (مارس) 2022
تم طرح androidx.benchmark:benchmark-*:1.1.0-beta05
. يحتوي الإصدار 1.1.0-beta05 على هذه الالتزامات.
إصلاح الأخطاء
- إنهاء الحزمة بعد تخطي تثبيت الملف الشخصي عند استخدام
CompilationMode.None
. (aosp/1991373) - تم إصلاح المشكلة المتمثلة في تعذُّر جمع مقاييس أداء الماكرو عند استخدام
StartupMode.COLD
. (aosp/2012227 b/218668335)
الإصدار 1.1.0-beta04
23 شباط (فبراير) 2022
تم طرح androidx.benchmark:benchmark-*:1.1.0-beta04
. يحتوي الإصدار 1.1.0-beta04 على عمليات التنفيذ هذه.
إصلاح الأخطاء
حلّ مشكلة المقاييس الناقصة على نظام Android 10
NoSuchElementException
بسبب عدم تسجيل أسماء العمليات بشكل صحيح في الآثار. (Ib4c17، b/218668335)استخدام
PowerManager
لرصد التقييد الحراري على Q (واجهة برمجة التطبيقات 29) وأعلى. وهذا يقلل بشكل كبير من تكرار الخطأ نتائج اختبار التقييد الحراري (إعادة محاولة قياس الأداء بعد 90) فترة التوقف الثانية)، وتسريع مقاييس الأداء بشكل كبير على المستخدمين الإصدارات. وتوفّر الميزة أيضًا إمكانية رصد مصادر تسخين الهواء حتى في حال تفعيل الساعة (إذا كانت مقفَلة جدًا على قفل الجهاز بيئية). (I9c027، وb/217497678، وb/131755853)فلترة تحليل عيّنات البيانات البسيطة وفقًا لسلسلة محادثات
measureRepeated
فقط لتبسيط عملية الفحص (Ic3e12، b/217501939)توفير المقاييس من العمليات الفرعية لواجهة المستخدم المُعنونة في التطبيقات المتعددة العمليات (Ice6c0 وb/215988434)
يمكنك فلترة قواعد "الملف الشخصي الأساسي" لاستهداف الإصدار 9 من Android (حزمة تطوير البرامج (SDK) 28). aosp/1980331 b/216508418
يمكنك تخطّي تثبيت الملف الشخصي عند استخدام "
Compilation.None()
". بالإضافة إلى ذلك، يمكنك الإبلاغ عن التحذيرات عندما يستخدم التطبيق إصدارًا قديمًا منandroidx.profileinstaller
والمكوّن الإضافي لنظام Gradle المتوافق مع Android. aosp/1977029
الإصدار 1.1.0-beta03
9 شباط (فبراير) 2022
تم طرح androidx.benchmark:benchmark-*:1.1.0-beta03
. يحتوي الإصدار 1.1.0-beta03 على هذه الالتزامات.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة
AudioUnderrunMetric
إلى مكتبة مقاييس الأداء القصوى ضمن علامة تجريبية للسماح برصد انخفاض مستوى الصوت (Ib5972). لم يعد
BaselineProfileRule
يقبل مجموعةsetup
لأنّ هذه الميزة تعمل تمامًا مثلprofileBlock
. (Ic7dfe، b/215536447)على سبيل المثال:
@Test fun collectBaselineProfile() { baselineRule.collectBaselineProfile( packageName = PACKAGE_NAME, setupBlock = { startActivityAndWait() }, profileBlock = { // ... } ) }
@Test fun collectBaselineProfile() { baselineRule.collectBaselineProfile( packageName = PACKAGE_NAME, profileBlock = { startActivityAndWait() // ... } ) }
إصلاح الأخطاء
- تم إصلاح مشكلة تعذّر تعديل عمليات تتبُّع أداة تحليل البيانات الصغيرة في عمليات التشغيل اللاحقة عند ربطها في إخراج "استوديو YouTube" (I5ae4d وb/214917025).
- منع أوامر واجهة برمجة التطبيقات 23 (Ice380)
- تمت إعادة التسمية
FrameCpuTime
->FrameDurationCpu
،FrameUiTime
->FrameDurationUi
لتوضيح أنّ هذه هي المدد، وليست الطوابع الزمنية، ولمطابقة البادئات. (I0eba3، b/216337830)
الإصدار 1.1.0-beta02
26 يناير 2022
تم طرح androidx.benchmark:benchmark-*:1.1.0-beta02
. يحتوي الإصدار 1.1.0-beta02 على عمليات التنفيذ هذه.
إصلاح الأخطاء
- ملف تعريف تتبُّع الطرق / تحليل عيّنات معيارية صغيرة يتم ربط النتائج الآن في إخراج "استوديو YouTube"، كما هو الحال مع مخرجات الملفات التعريفية الأخرى، ولا تمنع ومقياس التخصيص. (Idcb65 وb/214440748 وb/214253245)
- يطبع BaselineProfileRule الآن الأمر
adb pull
في Logcat ومخرجات "استوديو YouTube" لسحب الملف النصي BaselineProfile الذي تم إنشاؤه. (f08811)
الإصدار 1.1.0-beta01
12 كانون الثاني (يناير) 2022
تم طرح androidx.benchmark:benchmark-*:1.1.0-beta01
. يحتوي الإصدار 1.1.0-beta01 على عمليات التنفيذ هذه.
إصلاح الأخطاء
- يعمل هذا الإجراء على إصلاح تفعيل وسيطة المحدِّد. (I37373، b/210619998)
- تمت إزالة
CompliationModes
المتوقّفة نهائيًا (I98186، b/213467659) - تم تبديل وسيطة الملف الشخصي الأساسي من
CompilationMode.Partial
إلى التعداد للوضوح. (Id67ea)
الإصدار 1.1.0-alpha13
15 كانون الأول (ديسمبر) 2021
تم طرح androidx.benchmark:benchmark-*:1.1.0-alpha13
. يحتوي الإصدار 1.1.0-alpha13 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- يمكنك إضافة "تتبُّع النظام" بمنتهى البساطة إلى مخرجات الأجهزة الصغيرة على Android Q (واجهة برمجة التطبيقات 29 والإصدارات الأحدث). يُرجى العِلم أنّ هذا الإجراء لا يلتقط حاليًا التتبُّع المخصّص (من خلال واجهات برمجة تطبيقات
android.os.Trace
أوandroidx.tracing
Jetpack) لتجنُّب التأثير في النتائج. يجب أن يكون هذا التتبع مفيدًا في تشخيص عدم الاستقرار، وبخاصة من مصادر خارجة عن مقياس الأداء. (I298be، b/205636583، b/145598917) - توضيح "
CompilationModes
" إلى ثلاث فئات: "كامل" و"لا شيء" و"جزئي" في السابق، كانت أسماؤها غير متسقة بعد وسيطات التجميع (التي نتعامل معها الآن كتفاصيل تنفيذ) والميزات. وهذا يجعل المفاضلات والمجموعات المحتملة والسلوكيات في إصدارات المنصات أكثر وضوحًا. (I3d7bf، b/207132597) - يكون الإعداد والقياس الآن زوجيًا دائمًا بالترتيب. يمكنك الآن الاستعلام عن اسم الحزمة وتكرارها (على الرغم من أنّ التكرار قد يكون
null
في بعض سيناريوهات التحضير). (Id3b68، b/208357448، b/208369635)
إصلاح الأخطاء
- تم إصلاح
CompilationMode.Speed
تم التعامل معها بشكل غير صحيح على أنهاNone
(I01137)
الإصدار 1.1.0-alpha12
17 تشرين الثاني (نوفمبر) 2021
تم طرح androidx.benchmark:benchmark-*:1.1.0-alpha12
. يحتوي الإصدار 1.1.0-alpha12 على عمليات التنفيذ هذه.
الميزات الجديدة
- إضافة Traceالحساب التجريبي المستند إلى التتبع المخصّص وقياسات التوقيت. (I99db1، b/204572664)
إصلاح الأخطاء
- تنشيط الجهاز في كل تكرار، لضمان إمكانية اختبار واجهة المستخدم - يتطلب إيقاف شاشة القفل. (Ibfa28، b/180963442)
- إصلاح الأعطال المتعددة في وضع "تحليل حِزم StackSamping" المفعّل أدوات المحاكاة والأجهزة غير المزوّدة بإذن الوصول إلى الجذر (Icdbda وb/202719335)
- تمت إزالة سكون لمدة 0.5 ثانية في نهاية كل تكرار - إذا ترى مقاييس مفقودة مع هذا التغيير، يُرجى الإبلاغ عن خطأ. (Iff6aa)
- تقليل فرص إسقاط البيانات وخفض أعباء الذاكرة بسبب التتبُّع (Id2544 وb/199324831 وb/204448861)
- يمكنك تقليل حجم التتبع بنسبة 40% تقريبًا عن طريق التبديل إلى تنسيق التخزين المجدول المضغوط. (Id5fb6، b/199324831)
- عمليات تنفيذ محدَّثة لمقاييس بدء التشغيل وتنتهي دائمًا في نهاية سلسلة العرض. سيكون هذا الأمر أكثر اتساقًا على مختلف المنصات وإصدارات التطبيق وتربطه بشكل وثيق بالقياسات داخل التطبيق. (Ic6b55)
الإصدار 1.1.0-alpha11
3 تشرين الثاني (نوفمبر) 2021
تم طرح androidx.benchmark:benchmark-*:1.1.0-alpha11
. يحتوي الإصدار 1.1.0-alpha11 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- أصبح مقياس الأداء الماكرو الآن
minSdkVersion
من23
. (If2655) - تتم إضافة
BaselineProfileRule
تجريبي جديد يتيح إنشاء ملفات شخصية أساسية لتجربة المستخدم المهمة في التطبيق. الوثائق التفصيلية التي يجب اتباعها. (إيبفا، b/203692160) - تتم إزالة صيغة الواجهة المتكرِّرة التي تمت إضافتها لمتصلي جافا، حيث تسبب ذلك في غموض إكمال/حل . سيحتاج المتصلون بـ Java مرة أخرى إلى عرض Unit.Instance من وتكراره. إذا كان ذلك يسبب إزعاجًا، يُرجى الإبلاغ عن الخطأ، ونحن ويمكنك إعادة النظر في هذا في إصدار مستقبلي. (Ifb23e وb/204331495)
الإصدار 1.1.0-alpha10
27 تشرين الأول (أكتوبر) 2021
تم طرح androidx.benchmark:benchmark-*:1.1.0-alpha10
. يحتوي الإصدار 1.1.0-alpha10 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- الرجوع إلى واجهة برمجة التطبيقات StartupTimingMetric للعمل مرة أخرى على واجهة برمجة التطبيقات 23. هذا النمط ويتعامل التنفيذ الجديد أيضًا بشكل أفضل مع reportFullyDrawn() للانتظار إلى أن يتم عرض المحتوى المطابق (If3ac9، وb/183129298)
- تمت إضافة عمليات تحميل JvmOverload إلى طرق متعدّدة خاصة بمقياس طلبك على نطاق صغير في إطار البيانات (CMP) لمتصلي Java. (I644fe، b/184546459)
- يمكنك توفير دالة AnimalMetricRule.measure المتكرّرة التي تستخدم
Consumer<MacrobenchmarkScope>
مع التعبير الاصطلاحي بلغة Java. (If74ab، وb/184546459)
إصلاح الأخطاء
- أصلِح المشكلة المتعلّقة بعدم البدء في حالات الآثار في وقت مبكر بما فيه الكفاية، وأنّ بيانات المقياس غير متوفّرة. من المتوقّع أن يؤدي ذلك إلى حلّ المشكلة "تعذّرت قراءة أي مقاييس. خلال هامش السعر" الاستثناءات الناتجة عن المكتبة نفسها. (I6dfcb وb/193827052 وb/200302931)
- تمت إعادة تسمية Frame negativeSlack ليصبح FrameOverrun لتوضيح معناه، أي مدى تجاوز الإطار لميزانيته الزمنية. (I6c2aa، b/203008701)
الإصدار 1.1.0-alpha09
13 تشرين الأول (أكتوبر) 2021
تم طرح androidx.benchmark:benchmark-*:1.1.0-alpha09
. يحتوي الإصدار 1.1.0-alpha09 على هذه عمليات التنفيذ.
إصلاح الأخطاء
- دعم إسقاط ذاكرة التخزين المؤقت لصفحة Kernel بدون جذر على واجهة برمجة التطبيقات 31/S+ ، مما سيزيد من دقة عمليات تشغيل StartupMode.COLD. (Iecfdb، b/200160030)
الإصدار 1.1.0-alpha08
29 أيلول (سبتمبر) 2021
تم طرح androidx.benchmark:benchmark-*:1.1.0-alpha08
. يحتوي الإصدار 1.1.0-alpha08 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- فعِّل مقاييس ماكرو التمرير للرجوع إلى واجهة برمجة التطبيقات 23 (If39c2، وb/183129298)
- إضافة نوع جديد من المقياس المأخوذ إلى عيّنة إلى مخرجات واجهة المستخدم وJSON، مع التركيز على البيانات المئوية لعينات متعددة لكل تكرار. (I56247، b/199940612)
- التبديل إلى مقاييس النقطة العائمة في مقياس الأداء (مقتطَعة في واجهة مستخدم Studio). (I69249، b/197008210)
الإصدار 1.1.0-alpha07
1 أيلول (سبتمبر) 2021
تم طرح androidx.benchmark:benchmark-*:1.1.0-alpha07
. يحتوي الإصدار 1.1.0-alpha07 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- تم رفع الحد الأدنى لواجهة برمجة التطبيقات إلى 21 ليعكس المستوى الأدنى المقصود لواجهة برمجة التطبيقات الذي سيتم دعمه في المستقبل. يستمر نقل الحد الأدنى لواجهة برمجة التطبيقات المتوافقة الحالية عبر requiredApi()، وهو حاليًا 29 (I440d6، b/183129298)
إصلاح الأخطاء
- يعمل هذا الإعداد على إصلاح
ProfileInstaller
لتسهيل تشغيل التطبيقات التي تستخدم الملفات الشخصية الأساسية لمقاييس الماكرو باستخدامCompilationMode.BaselineProfile
. (I42657، b/196074999) ملاحظة: يجب أيضًا التحديث إلىandroidx.profileinstaller:profileinstaller:1.1.0-alpha04
أو إصدار أحدث. - أصبحت مقاييس الأداء
StartupMode.COLD
+CompilationMode.None
أكثر استقرارًا الآن. (I770cd، b/196074999)
الإصدار 1.1.0-alpha06
18 آب (أغسطس) 2021
تم طرح androidx.benchmark:benchmark-*:1.1.0-alpha06
. يحتوي الإصدار 1.1.0-alpha06 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة وسيطة أداة
androidx.benchmark.iterations
للسماح بالإلغاء اليدوي لعدد التكرارات عند الاختبار/تحديد الملفات على الجهاز. (6188be، b/194137879)
إصلاح الأخطاء
- تم التبديل إلى Simpleperf بصفته محلّل بيانات تلقائي لأخذ العيّنات على الإصدار 29 من واجهة برمجة التطبيقات أو الإصدارات الأحدث. (Ic4b34، b/158303822)
المشاكل المعروفة
- لا يزال "
CompilationMode.BaselineProfile
" قيد التطوير. تجنب استخدامه لتحديد مدى جودة الملف الشخصي في الوقت الحالي.
الإصدار 1.1.0-alpha05
4 آب (أغسطس) 2021
تم طرح androidx.benchmark:benchmark-*:1.1.0-alpha05
. يحتوي الإصدار 1.1.0-alpha05 على هذه عمليات التنفيذ.
تم إلغاء 1.1.0-alpha04
قبل إصداره بسبب حادث سير. b/193827052
التغييرات في واجهة برمجة التطبيقات
- تم تبديل startActivityAndOnce لاستدعاء الإطلاق عبر
am start
، مما يقلل وقت كل تكرار للقياس بحوالي 5 ثوانٍ، على حساب عدم دعمه بعد الآن عناصر الأهداف. (I5a6f5، b/192009149
إصلاح الأخطاء
- تقليل شدة اكتشاف الاختناق الحراري إعادة حساب خط الأساس إذا تم اكتشاف تقييدات بشكل متكرر. (I7327b)
- إصلاح FrameTimingMetric للعمل على الإصدار التجريبي من Android S (Ib60cc وb/193260119)
- استخدِم
EmptyActivity
لإزالة التطبيق المستهدَف من حالة الإيقاف النهائي من أجل إتاحة استخدامCompilationMode.BaselineProfile
بشكل أفضل. (Id7cac، b/192084204) - تم تغيير امتداد ملف التتبُّع إلى
.perfetto-trace
ليتطابق مع معيار النظام الأساسي. (I4c236، b/174663039) - تُخرج StartupTimingMetric الآن التنسيق "fullDrawnMs" المقياس لقياس الوقت حتى يكتمل العرض في تطبيقك. إلى حدِّد هذا المقياس لتطبيقك، ويمكنك الاتصال بـ Activity.reportFullyDrawn عندما يكون المحتوى الأولي جاهزًا، مثلاً عندما تكون عناصر القائمة الأولية يتم تحميلها من قاعدة البيانات أو الشبكة. (تتوفّر طريقة reportFullyDrawn) بدون إصدار فحوصات للإصدار على ComponentActivity). يجب إجراء الاختبار لمدة كافية لتسجيل المقياس (startActivityAndand لا ينتظر reportFullyDrawn). (If1141 وb/179176560)
- تقليل تكلفة إلحاق البيانات الوصفية لواجهة المستخدم في عمليات التتبُّع بمقدار 50 ملي ثانية (Ic8390، وb/193923003)
- زيادة كبيرة في وتيرة الاستطلاع عند الإيقاف للتتبع، والذي يمكن أن يقلل على سبيل المثال زيادة وقت تشغيل مقياس أداء الشركات الناشئة بنسبة %30 (Idfbc1، وb/193723768)
الإصدار 1.1.0-alpha03
16 حزيران (يونيو) 2021
تم طرح androidx.benchmark:benchmark-*:1.1.0-alpha03
. يحتوي الإصدار 1.1.0-alpha03 على هذه عمليات التنفيذ.
الميزات الجديدة
- تمت إضافة
CompilationMode.BaselineProfile
جديد لإتاحة الملفات الشخصية المثبَّتة باستخدام مكتبة Jetpack ProfileInstaller. (aosp/1720930)
إصلاح الأخطاء
تم تعديل نموذج رمز Gradle لمنع أخطاء قياس الأداء من أجل استخدام واجهة برمجة تطبيقات لم يتم إيقافها نهائيًا مع بنية تتوافق أيضًا مع مستخدمي .gradle.kts.
مثال:
testInstrumentationRunnerArguments["androidx.benchmark.suppressErrors"] = "EMULATOR,LOW-BATTERY"
الإصدار 1.1.0-alpha02
18 أيار (مايو) 2021
يُعد الإصدار 1.1.0-alpha02 من مقياس الأداء عنصرًا كبيرًا لقياس الأداء - مقياس الأداء الفائق. بالإضافة إلى مقياس الأداء الذي يسمح لك بقياس عدد تكرارات وحدة المعالجة المركزية (CPU)، تسمح لك مقاييس الماكرو بقياس التفاعلات على مستوى التطبيقات بالكامل، مثل بدء التشغيل والتمرير والتقاط عمليات التتبُّع. لمزيد من المعلومات، اطّلِع على مستندات المكتبة.
تم طرح androidx.benchmark:benchmark-*:1.1.0-alpha02
. يحتوي الإصدار 1.1.0-alpha02 على عمليات التنفيذ هذه.
الميزات الجديدة
تمت إضافة عناصر قياس الأداء الماكرو (androidx.benchmark:benchmark-macro-junit4
وandroidx.benchmark:benchmark-macro
)
- تسجيل مقاييس أداء بدء التشغيل أو التمرير أو الصور المتحركة من تطبيقك، محليًا أو في CI
- التقاط آثار الأنشطة وفحصها من داخل "استوديو Android"
إصلاح الأخطاء
- حلّ مشكلة أذونات واجهة أوامر الغلاف في دليل الإخراج على نظام التشغيل Android 12 (ملاحظة: قد يتطلب ذلك تحديث مكوّن Android Gradle الإضافي إلى الإصدار 7.0.0 Canary وAndroid Studio إلى Arctic Fox (2020.3.1)، لمواصلة التقاط ملفات النتائج على الأجهزة المتأثرة). (Icb039)
- التخزين المؤقت لإعدادات الدعم في Benchmarkplin (6be1c1 وb/159804788)
- إخراج ملف مبسّط: مفعّل تلقائيًا في دليل لا يتطلب
requestLegacyExternalStorage=true
(8b5a4d، b/172376362) - إصلاح تحذيرات عدم العثور على سجلّ الطباعة في المكتبة سلسلة محادثات JIT على إصدارات النظام الأساسي التي لا تتوفّر فيها (I9cc63، b/161847393)
- حلّ مشكلة الحد الأقصى لمعدّل التكرار على جهاز القراءة (I55c7a)
الإصدار 1.1.0-alpha01
10 حزيران (يونيو) 2020
تم طرح الإصدارات androidx.benchmark:benchmark-common:1.1.0-alpha01
وandroidx.benchmark:benchmark-gradle-plugin:1.1.0-alpha01
وandroidx.benchmark:benchmark-junit4:1.1.0-alpha01
. يحتوي الإصدار 1.1.0-alpha01 على عمليات التنفيذ هذه.
الميزات الجديدة في الإصدار 1.1
- مقياس التخصيص: يتم الآن تشغيل مقاييس الأداء مرحلة إضافية بعد الإعداد والتوقيت، حيث يتم تسجيل أعداد التخصيص. يمكن أن تتسبب عمليات التخصيص في حدوث مشكلات في الأداء على الإصدارات القديمة من النظام الأساسي (أصبح 140 نانو ثانية في O - يتم قياسها على Nexus5X، مع ساعات مقفلة). يتم عرض هذا المقياس في نتيجة وحدة تحكّم "استوديو Android" وكذلك في
- دعم إنشاء الملفات التعريفية: يمكنك الآن تسجيل بيانات التوصيف لأداء اختبار قياسي، وذلك لفحص سبب بطء تشغيل الرمز. يدعم مقياس الأداء تسجيل تتبع الطريقة أو أخذ عينات الطرق من ART. يمكن فحص هذه الملفات باستخدام "المحدِّد" في "استوديو Android" باستخدام ملف >. افتح.
- يوفّر المكوّن الإضافي Reference Gradle الآن الإعدادات التلقائية لعملية إعداد أكثر بساطة:
- تم ضبط
testBuildType
ليتم طرحه تلقائيًا، وذلك لتجنُّب استخدام الاعتماديات مع تغطية الرمز المُدمَجة. يتم أيضًا ضبط نوع إنشاء الإصدار على أنّه نوع الإنشاء التلقائي الذي يتيح لـ "استوديو Android" اختيار صيغة الإصدار الصحيحة تلقائيًا عند فتح مشروع للمرة الأولى. (b/138808399) - يتم استخدام
signingConfig.debug
كإعداد تلقائي للتوقيع (b/153583269).
- تم ضبط
** إصلاح الأخطاء **
- انخفاض كبير في النفقات العامة لعملية الانتقال، حيث كان القياس الأول لكل مقياس أداء أعلى بشكل مصطنع من غيره. كانت هذه المشكلة أكثر وضوحًا في مقاييس أداء صغيرة جدًا (1 ميكرو ثانية أو أقل). (b/142058671)
- تم إصلاح خطأ
InstrumentationResultParser
المطبوع لكل مقياس أداء عند التشغيل من سطر الأوامر. (I64988، b/154248456)
المشاكل المعروفة
- لا تطبع سطر الأوامر أو استدعاءات Gradle لمقياس الأداء النتائج مباشرة. ويمكنك حلّ هذه المشكلة إما من خلال الانتقال إلى "استوديو YouTube" أو تحليل ملف إخراج JSON للحصول على النتائج.
- يتعذّر على تقارير قياس الأداء سحب التقرير من الأجهزة التي تم تثبيت تطبيق عليها رقم تعريف تطبيق ينتهي بـ "android" أو "تنزيل" (غير حساس لحالة الأحرف). على المستخدمين الذين يواجهون هذه المشكلة ترقية المكوّن الإضافي لنظام Gradle المتوافق مع Android إلى الإصدار 4.2-alpha01 أو إصدار أحدث.
الإصدار 1.0.0
الإصدار المرجعي 1.0.0
20 تشرين الثاني (نوفمبر) 2019
تم إصدار androidx.benchmark:benchmark-common:1.0.0
وandroidx.benchmark:benchmark-gradle-plugin:1.0.0
وandroidx.benchmark:benchmark-junit4:1.0.0
بدون أي تغييرات من 1.0.0-rc01. يحتوي الإصدار 1.0.0 على عمليات التنفيذ هذه.
الميزات الرئيسية للإصدار 1.0.0
تسمح لك مكتبة مقاييس الأداء بكتابة مقاييس أداء لرمز التطبيق والحصول على النتائج بسرعة.
ويمنع حدوث مشاكل ضبط إعدادات وقت التشغيل والإصدار، كما يساعد على تثبيت أداء الجهاز لضمان دقة القياسات واتّساقها. يمكنك تشغيل مقاييس الأداء مباشرةً في "استوديو Android" أو في ميزة "الدمج المستمر" لمراقبة أداء الرمز البرمجي مع مرور الوقت وتجنُّب أي تراجع فيه.
وتشمل الميزات الرئيسية ما يلي:
- تثبيت الساعة
- تحديد الأولوية تلقائيًا لسلاسل المحادثات
- دعم اختبار أداء واجهة المستخدم، مثل نموذج RecyclerView
- الإحماء والتكرار المدركين لتكنولوجيا JIT
- ناتج مقياس أداء JSON بعد المعالجة
الإصدار 1.0.0-rc01
23 تشرين الأول (أكتوبر) 2019
تم طرح الإصدارات androidx.benchmark:benchmark-common:1.0.0-rc01
وandroidx.benchmark:benchmark-gradle-plugin:1.0.0-rc01
وandroidx.benchmark:benchmark-junit4:1.0.0-rc01
. يحتوي الإصدار 1.0.0-rc01 على عمليات التنفيذ هذه.
الميزات الجديدة
- تمت إضافة تتبُّع تتبُّع النظام إلى مقاييس الأداء.
إصلاح الأخطاء
- تم إصلاح مشكلة عدم استقرار المقياس حيث لا يمكن إنهاء JIT قبل التحضير بسبب خفض الأولوية (b/140773023)
- دليل إخراج JSON موحد في الإصدارين 3.5 و3.6 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
الإصدار 1.0.0-beta01
9 تشرين الأول (أكتوبر) 2019
تم طرح الإصدارات androidx.benchmark:benchmark-common:1.0.0-beta01
وandroidx.benchmark:benchmark-gradle-plugin:1.0.0-beta01
وandroidx.benchmark:benchmark-junit4:1.0.0-beta01
. يحتوي الإصدار 1.0.0-beta01 على عمليات التنفيذ هذه.
الميزات الجديدة
- تنفيذ عملية جمع البيانات غير المرغوب فيها قبل كل عملية إحماء لتقليل ضغط الذاكرة من أحد مقاييس الأداء إلى المقياس التالي (b/140895105)
إصلاح الأخطاء
- تمت إضافة الاعتمادية
androidx.annotation:android-experimental-lint
لكي يعرض رمز Java أخطاء Lint بشكل صحيح في حال عدم استخدام واجهة برمجة تطبيقات تجريبية، على غرار التعليق التوضيحي التجريبي بلغة Kotlin لمتصلي لغة Kotlin. - يتم الآن رصد استخدام وسيطة أداة
additionalTestOutputDir
بشكل صحيح للمخرجات في الإصدار 3.6 من المكوّن الإضافي لنظام Gradle المتوافق مع Android، وذلك لمعرفة متى سيعالج AGP نسخة البيانات. - إصلاح معدّل تكرار الساعة الذي لم يتم رصده في ملف JSON لطباعة
-1
بشكلٍ صحيح (b/141945670)
الإصدار 1.0.0-alpha06
18 أيلول (سبتمبر) 2019
تم طرح الإصدارات androidx.benchmark:benchmark-common:1.0.0-alpha06
وandroidx.benchmark:benchmark-gradle-plugin:1.0.0-alpha06
وandroidx.benchmark:benchmark-junit4:1.0.0-alpha06
. يحتوي الإصدار 1.0.0-alpha06 على هذه عمليات التنفيذ.
الميزات الجديدة
- تمت إضافة عملية تحقّق من الاستخدام الخاطئ للحزمة القديمة في برنامج تشغيل الاختبار، وأصبحت الآن رسالة خطأ مفيدة أكثر.
التغييرات في واجهة برمجة التطبيقات
- أصبح التعليق التوضيحي التجريبي "
ExperimentalAnnotationReport
" علنيًا الآن بشكلٍ صحيح. يجب الآن إضافة هذا التعليق التوضيحي لاستخدام واجهة برمجة التطبيقات BenchmarkState#report التجريبية.
الإصدار 1.0.0-alpha05
5 أيلول (سبتمبر) 2019
تم طرح الإصدارات androidx.benchmark:benchmark-common:1.0.0-alpha05
وandroidx.benchmark:benchmark-gradle-plugin:1.0.0-alpha05
وandroidx.benchmark:benchmark-junit4:1.0.0-alpha05
. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.
التغييرات في واجهة برمجة التطبيقات
- تم الآن وضع علامة تجريبية على واجهة برمجة تطبيقات
BenchmarkState.reportData
.
إصلاح الأخطاء
- عليك حل المشكلة المتعلّقة بالنص البرمجي لقفل الساعة الذي يتعذّر تفعيله على الأجهزة التي لم يتم فيها تفعيل برامج المساعدة
cut
أوexpr
. - تم إصلاح مشكلة في مَهمّة "
./gradlew lockClocks
" التي كانت معلّقة على الأجهزة المزوّدة بإذن الوصول إلى الجذر من خلال إصدار قديم من الأداة المساعدة التي لا تتوافق مع علامة-c
.
الإصدار 1.0.0-alpha04
7 آب (أغسطس) 2019
تم طرح الإصدارات androidx.benchmark:benchmark-common:1.0.0-alpha04
وandroidx.benchmark:benchmark-gradle-plugin:1.0.0-alpha04
وandroidx.benchmark:benchmark-junit4:1.0.0-alpha04
. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.
تمّت أيضًا إضافة مستندات جديدة حول كيفية استخدام مكتبة مقاييس الأداء بدون Gradle، سواء للاستخدام مع أنظمة التصميم المختلفة (مثل Bazel أو Buck)، وعند التشغيل في CI. ولمزيد من المعلومات، يُرجى الاطّلاع على المقالتَين إنشاء مقاييس أداء بدون أداة Gradle وتنفيذ مقاييس الأداء في عملية الدمج المستمر.
الميزات الجديدة
- المكوّن الإضافي Gradle
- يتم الآن إيقاف التغطية التجريبية تلقائيًا، وضبط
AndroidBenchmarkRunner
تلقائيًا (b/138374050). - تمت إضافة الدعم لنسخة جديدة من البيانات المستندة إلى AGP، عند تشغيل مقاييس الأداء وعند استخدام AGP 3.6 أو إصدار أحدث
- يتم الآن إيقاف التغطية التجريبية تلقائيًا، وضبط
- إضافات بتنسيق JSON
- وقت تشغيل اختبار قياس أداء الناتج (b/133147694)
- تُخرج مقاييس الأداء
@Parameterized
التي تستخدم سلسلة اسم (على سبيل المثال@Parameters(name = "size={0},depth={1}")
) الآن أسماء المَعلمات والقيم لكل مقياس أداء في إخراج JSON (b/132578772).
- وضع التشغيل التجريبي (b/138785848)
- تمت إضافة "تشغيل تجريبي" لتشغيل كل حلقة معيارية مرة واحدة فقط، للتحقق من الأخطاء/الأعطال بدون التقاط القياسات. ويمكن أن يكون هذا مفيدًا مثلاً: على سبيل المثال، تنفيذ مقاييس الأداء بسرعة في ما قبل الإرسال للتأكّد من أنّها غير معطّلة.
التغييرات في واجهة برمجة التطبيقات
- تم تغيير بنية الوحدة، وتقسيم المكتبة (b/138451391)
- يحتوي
benchmark:benchmark-junit4
على فئتَين بها الاعتمادية على JUnit:AndroidBenchmarkRunner
وBenchmarkRule
، وتم نقل كلاهما إلى حزمةandroidx.benchmark.junit4
. - يحتوي
benchmark:benchmark-common
على باقي المنطق، بما في ذلك BenchmarkState API - سيسمح هذا التقسيم للمكتبة في المستقبل بإتاحة قياس الأداء بدون استخدام واجهات برمجة تطبيقات JUnit4.
- يحتوي
- يتم الآن التعامل مع تحذيرات الضبط على أنها أخطاء، وستؤدي إلى إيقاف الاختبار (b/137653596).
- يهدف ذلك إلى التشجيع على إجراء عمليات قياس دقيقة، وخاصةً في CI.
- يمكن تخفيض هذه الأخطاء مرة أخرى إلى تحذيرات باستخدام وسيطة أداة. على سبيل المثال:
-e androidx.benchmark.suppressErrors "DEBUGGABLE,LOW_BATTERY"
إصلاح الأخطاء
- عند الكتابة على وحدة تخزين خارجية على أجهزة Q، يتم تقديم رسائل وصفية أكثر مع اقتراحات حول كيفية حل المشكلة.
- يتم تفعيل الشاشات تلقائيًا أثناء عمليات قياس الأداء، بدلاً من أن تفشل عندما تكون الشاشة مطفأة
المساهمات الخارجية
- نشكر "سيرغي زخاروف" لمساهمته في تحسين ناتج JSON وحلّ مشاكل الشاشة.
الإصدار 1.0.0-alpha03
2 تموز (يوليو) 2019
تم طرح androidx.benchmark:benchmark:1.0.0-alpha03
وandroidx.benchmark:benchmark-gradle-plugin:1.0.0-alpha03
. يمكن الاطّلاع على صفقات الاشتراك المضمَّنة في هذا الإصدار هنا.
الميزات الجديدة
- عرض مدة النوم بسبب التقييد الحراري لكل مقياس أداء في تقرير JSON الكامل
إصلاح الأخطاء
- لن يلزم بعد الآن تطبيق مكوّن Gradle الإضافي بعد المكوّنات الإضافية لنظام التشغيل Android وحظر Android.
- إتاحة تقارير قياس الأداء على الأجهزة التي تعمل بنظام التشغيل Android 10 التي تستخدم مساحة التخزين المُفصَّلة
الإصدار 1.0.0-alpha02
6 حزيران (يونيو) 2019
androidx.benchmark:1.0.0-alpha02
و
تم طرح androidx.benchmark:benchmark-gradle-plugin:1.0.0-alpha02
. تشير رسالة الأشكال البيانية
يمكن الاطّلاع على عقود الاشتراك المضمّنة في هذه النسخة هنا.
تجدر الإشارة إلى أنّنا نتعامل مع مخطط JSON باعتباره واجهة برمجة تطبيقات. نحن نخطط لاتباع ثابتة مثل واجهات برمجة التطبيقات الأخرى: ثابتة (مع استثناءات نادرة جدًا) مرة واحدة في بيتا، وثابت في الإصدار النهائي، مع إضافات فقط في الإصدارات الثانوية التغييرات أو الإزالة في الإصدارات الرئيسية.
التغييرات في واجهة برمجة التطبيقات
تم تعديل مخطط JSON. ومن المرجح أن يتم إجراء تغييرات أخرى على مخطط JSON مقتصر على الإضافات:
- إعادة تنظيم بنية عنصر النتيجة لإتاحة مجموعات مقاييس إضافية في المستقبل (b/132713021)
- تمت إضافة معلومات سياق تشغيل الاختبار، مثل معلومات الجهاز والإصدار ما إذا كانت الساعات مقفلة، في كائن المستوى الأعلى (b/132711920)
- تحتوي أسماء مقاييس الوقت الآن على "ns" في أسمائها (b/132714527)
- إحصاءات إضافية مضافة لكل مقياس تم الإبلاغ عنه (الحد الأقصى، المتوسط، الحد الأدنى) تمت إزالة "nanos" المبسّط إحصائيات موجزة (b/132713851)
تمت إزالة ناتج XML. (b/132714414)
تمّت إزالة ميزة "رصد التقييد الحراري" من واجهة برمجة تطبيقات "
BenchmarkState.reportData
" (b/132887006)
إصلاح الأخطاء
- تم إصلاح مشكلة عدم تثبيت "
./gradlew lockClocks
" على بعض الأجهزة التي تعمل بنظام التشغيل مؤخرًا. (b/133424037) - تم إيقاف الكشف عن تقييد تدفق البيانات في المحاكي (b/132880807)
الإصدار 1.0.0-alpha01
7 أيار (مايو) 2019
تم طرح androidx.benchmark:benchmark:1.0.0-alpha01
. شملت التزامات
في هذا الإصدار متوفرة
هنا.