تساهم "الملفات الأساسية" في تحسين سرعة تنفيذ الرمز بنسبة تصل إلى% 30 من خلال تجنُّب خطوات التجميع أثناء التنفيذ (JIT) والمترجم في تجارب المستخدمين الشائعة. تتيح لك "ملفات تعريف خط الأساس" اختيار مسارات المستخدمين التي تريد تحسينها، ويمكن أن تساعد في تحسين بدء تشغيل التطبيق وتقليل التشويش وغير ذلك، ما يؤدي بدوره إلى تحسين مقاييس النشاط التجاري، مثل معدّل الاحتفاظ بالمستخدمين والتقييمات. مزيد من المعلومات حول ملفات Baseline
نفّذ فريق "تقويم Google" ميزة "ملفات تعريف Baseline" ولاحظ تحسُّنًا بنسبة% 20 تقريبًا في وقت بدء تشغيل التطبيق وانخفاضًا بنسبة% 50 تقريبًا في اللقطات البطيئة أو المجمدة. في ما يلي الخطوات التي اتّخذها الفريق لتحقيق هذه التحسينات في الأداء، بدءًا من سبب اختياره استخدام "ملفات Baseline" إلى طريقة قياس التأثير.
مقارنة بين "ملفات التعريف في السحابة الإلكترونية" و"ملفات التعريف الأساسية"
كان فريق "تقويم Google" يستخدم ملفات تعريف على السحابة الإلكترونية، وهي طريقة أخرى لتحسين الأداء استنادًا إلى الملفات الشخصية (PGO) وتستند إلى تفاعلات المستخدمين الفعلية مع التطبيق. إليك مقارنة بين "ملفات التعريف على السحابة الإلكترونية" و"ملفات التعريف الأساسية":
| نوع الملف الشخصي | الإعداد | رحلات المستخدمين المُضمَّنة | يعمل هذا الخيار على النحو الأمثل عندما تكون قاعدة المستخدمين | التأثير الذي تم تحقيقه | إصدارات Android المتوافقة |
|---|---|---|---|---|---|
ملفات Cloud |
مفعَّلة تلقائيًا |
يتم اختيارها تلقائيًا استنادًا إلى بيانات المستخدمين على أرض الواقع |
كبير |
خلال يومَين |
الإصدار 9 من نظام التشغيل Android (المستوى 28 لواجهة برمجة التطبيقات) والإصدارات الأحدث |
ملفات Baseline |
تم إعداده من قِبل المستخدم |
من اختيارك |
جميع الأحجام |
فورًا |
Android 7 (المستوى 24 لواجهة برمجة التطبيقات) والإصدارات الأحدث |
أحد الأسباب الرئيسية التي دفعت فريق "تقويم Google" إلى إضافة "ملفات Baseline" إلى قاعدة الرموز البرمجية هو أنّ الفريق كان بصدد الانتقال إلى دورة إصدار أسرع وأسبوعية. على الرغم من أنّ "الملفات الشخصية على السحابة الإلكترونية" تحقّق تحسينات كبيرة في الأداء، إلا أنّها تحتاج إلى يوم أو يومين بعد إطلاق التطبيق لتبلغ ذروة تأثيرها لأنّها تعتمد على تجميع بيانات المستخدمين الفعلية. يمنح استخدام ملفات Baseline Profiles مع ملفات Cloud Profiles المستخدمين المزيد من الوقت لتجربة التحسينات في الأداء قبل طرح الإصدار التالي من التطبيق.
بالإضافة إلى ذلك، كان من المهم أن يتمكّن فريق "تقويم Google" على Android من اختيار رحلات المستخدمين المهمة (CUJ) التي سيتم تضمينها في الملف الشخصي، وهو ما يمكنك تنفيذه باستخدام "ملفات Baseline".
بشكل عام، ننصح باستخدام "ملفات Baseline" بالإضافة إلى "ملفات Cloud"، التي يتم تفعيلها تلقائيًا، للحصول على أفضل نتائج الأداء.
رحلات المستخدمين المُضمَّنة
اختار فريق "تقويم Google" تضمين حالتين من حالات الاستخدام الشائعة في "ملفات تعريف خط الأساس":
- فتح التطبيق في طريقة عرض الجدول الزمني: هي طريقة العرض التلقائية في البداية، لذا من المهم تحسينها للمستخدمين الذين يستخدمون التطبيق للمرة الأولى أو الذين لا يغيّرون الإعدادات التلقائية.
- فتح التطبيق في عرض الشهر: هذا هو العرض المفضّل لدى العديد من المستخدمين، استنادًا إلى بيانات المستخدمين. لتتبُّع كيفية استخدام المستخدمين لتطبيقك، يمكنك استخدام أدوات مثل Firebase.
بشكل عام، يجب إضافة رحلات المستخدمين الشائعة التي تحقق أرباحًا للنشاط التجاري (إذا كان ذلك منطبقًا) ورحلات المستخدمين الشائعة. لمزيد من المعلومات حول كيفية اختيار رحلات المستخدمين الشائعة لتحسينها، اطّلِع على ما يجب تضمينه.
التنفيذ
يستخدم فريق "تقويم Google" برنامج تضمين داخليًا لمكتبة Jetpack Macrobenchmark لإنشاء "ملفات تعريف أساسية" بهدف تسهيل الدمج مع الأدوات الداخلية وتحقيق قابلية التوسّع بشكل عام.
في ما يلي إعدادات اختبار Macrobenchmark لفتح التطبيق في عرض الجدول الزمني:
@Test
fun generateProfile() =
baselineProfileRule.collect(PACKAGE_NAME, includeInStartupProfile = true) {
uiAutomator {
startApp(packageName = PACKAGE_NAME)
// Verify pre-existing recurring events and tasks are shown.
// onElement waits for the element by default
onElement { textAsString() == "Recurring event" }
onElement { textAsString() == "Recurring task" }
// Open drawer and verify selected view.
onElement { contentDescriptionAsString() == "Show Calendar List and Settings drawer" }.click()
onElement { contentDescriptionAsString() == "Schedule view, Selected" }
}
}
استبدِل ما يلي:
- PACKAGE_NAME: اسم حزمة التطبيق الذي تريد إنشاء ملفات تعريف أساسية له.
قياس التأثير باستخدام الإصدارات الخاضعة للرقابة
بما أنّ "ملفات تعريف خط الأساس" مرتبطة بشكل وثيق بحِزم APK التي يتم تضمينها فيها وتكون مضمّنة قبل تشغيل تطبيقك، لا يمكن إجراء تجربة A/B عادية لفهم تأثيرها. ومع ذلك، تمكّن فريق "تقويم Google" من قياس التأثير بدقة باستخدام الإصدارات الخاضعة للرقابة، حيث يتم بشكل أساسي طرح إصدار التطبيق الجديد لمجموعة فرعية فقط من المستخدمين ومقارنتهم بالمستخدمين الذين يستخدمون إصدارًا مشابهًا للإصدار السابق.
باستخدام Baseline Profiles، لاحظت الشركة تحسّنًا فوريًا وكبيرًا في مجالات متعددة، كما هو موضّح أدناه. يتم تجميع هذه الإحصاءات على نطاق واسع من الأجهزة وجميع المستخدمين، ومن المرجّح أن يستفيد المستخدمون الذين يبدأون في عرض الجدول الزمني وعرض الشهر من هذه الميزة بشكل أكبر، ولكن سيستفيد المستخدمون الآخرون أيضًا من تحسين العمليات المشتركة، مثل تحميل بيانات التقويم من قاعدة البيانات.
- انخفض متوسط وقت استجابة بدء تشغيل التطبيق التفاعلي (السيناريو الأكثر شيوعًا) من 775 ملي ثانية إلى 644 ملي ثانية (بنسبة %17)
- انخفض متوسط وقت استجابة التشغيل على البارد من 1,058 ملي ثانية إلى 901 ملي ثانية (بنسبة %15)
- انخفض متوسط وقت استجابة إعادة التشغيل السريع المتأخِّر من 453 ملي ثانية إلى 378 ملي ثانية (بنسبة %17)
- انخفاض متوسط عدد اللقطات غير السلسة في الثانية بنسبة تتراوح بين 42% و60% في طريقتَي عرض الجدول الزمني والشهر
يُرجى العِلم أنّه في حال استخدام "الملفات الشخصية على السحابة الإلكترونية" مع "ملفات Baseline"، من المحتمل أن تنخفض التحسينات قليلاً خلال الأسبوع الأول، وذلك أثناء إنشاء "الملفات الشخصية على السحابة الإلكترونية". ومع ذلك، سيظل بإمكانك تحقيق تحسينات كبيرة في الأداء باستخدام "ملفات Baseline" بالإضافة إلى التحسينات الأخرى التي أجريتها.
لمزيد من المعلومات حول الأدوات والميزات، يُرجى الاطّلاع على المراجع التالية: