نحن فريق سلسلة أدوات Android LLVM. من أهم أولوياتنا تحسين أداء Android من خلال تقنيات التحسين في نظام LLVM. نبحث باستمرار عن طرق لجعل Android أسرع وأكثر سلاسة وفعالية. مع أنّ معظم أعمال التحسين تتم في مساحة المستخدم، تظل النواة هي أساس النظام. يسرّنا اليوم أن نشاركك كيف سنوفّر ميزة التحسين التلقائي المستند إلى الملاحظات (AutoFDO) في نواة Android لتحقيق تحسينات كبيرة في الأداء للمستخدمين.
ما هي ميزة AutoFDO؟
أثناء إنشاء برامج عادية، يتّخذ برنامج التجميع آلاف القرارات الصغيرة، مثل ما إذا كان سيضمّن دالة في سطر واحد أو سيستخدم فرعًا من عبارة شرطية، وذلك استنادًا إلى تلميحات الرمز الثابت.ومع أنّ هذه الإرشادات مفيدة، إلا أنّها لا تتوقّع دائمًا بدقة تطبيق الرموز البرمجية أثناء استخدام الهاتف في الحياة اليومية.
تغيّر ميزة AutoFDO ذلك من خلال استخدام أنماط التنفيذ في الحياة اليومية لتوجيه برنامج التجميع. تمثّل هذه الأنماط مسارات تنفيذ التعليمات الأكثر شيوعًا التي يتّخذها الرمز البرمجي أثناء الاستخدام الفعلي، ويتم تسجيلها من خلال تسجيل سجلّ التفرّع لوحدة المعالجة المركزية. على الرغم من إمكانية جمع هذه البيانات من أجهزة الأسطول، فإنّنا نركّبها في النواة في بيئة مختبرية باستخدام أحمال عمل تمثيلية، مثل تشغيل أهم 100 تطبيق رائج. نستخدم أداة تحليل الأداء المستندة إلى أخذ العيّنات لتسجيل هذه البيانات، وتحديد أجزاء الرمز التي يتم استخدامها بشكل متكرر (الأجزاء "النشطة") والأجزاء التي لا يتم استخدامها كثيرًا (الأجزاء "غير النشطة"). عند إعادة إنشاء النواة باستخدام هذه الملفات الشخصية، يمكن للمترجم اتّخاذ قرارات تحسين أكثر ذكاءً ومصمّمة خصيصًا لأحمال عمل Android الفعلية.
لفهم تأثير هذا التحسين، إليك الحقائق الأساسية التالية:
- على نظام التشغيل Android، تمثّل النواة حوالي% 40 من وقت وحدة المعالجة المركزية.
- نستخدم حاليًا AutoFDO لتحسين الملفات التنفيذية الأصلية والمكتبات في مساحة المستخدم، ما يحقّق تحسّنًا بنسبة% 4 تقريبًا في سرعة تشغيل التطبيق البارد وتقليلًا بنسبة% 1 في وقت التشغيل.
تحسينات الأداء في الاستخدام الفعلي
لقد شهدنا تحسينات رائعة في مقاييس Android الرئيسية من خلال الاستفادة من الملفات الشخصية من بيئات المختبرات الخاضعة للرقابة. تم جمع هذه الملفات الشخصية باستخدام الزحف إلى التطبيقات وتشغيلها، وتم قياسها على أجهزة Pixel التي تعمل بنواة الإصدارات 6.1 و6.6 و6.12.
في ما يلي أبرز التحسينات. يمكنك الاطّلاع على تفاصيل حول ملفات AutoFDO الشخصية لإصدارات النواة هذه في مستودعات نواة Android المعنية لكل من نواة android16-6.12 ونواة android15-6.6.
وهذه ليست مجرد أرقام نظرية. ويؤدي ذلك إلى توفير واجهة أسرع، وتبديل أسرع بين التطبيقات، وعمر بطارية أطول، وجهاز أكثر استجابةً بشكل عام للمستخدم النهائي.
طريقة العمل: مسار التعلّم
تتضمّن استراتيجية النشر لدينا مسارًا معقّدًا لضمان بقاء الملفات الشخصية ذات صلة واستقرار الأداء.
الخطوة 1: جمع الملفات الشخصية
مع أنّنا نعتمد على مجموعة الأجهزة الداخلية المخصّصة للاختبار من أجل إنشاء ملفات تعريف لبرامج ثنائية لمساحة المستخدم، انتقلنا إلى بيئة مختبر خاضعة للرقابة من أجل صورة النواة العامة (GKI). يسمح فصل إنشاء الملفات الشخصية عن دورة إصدار الجهاز بإجراء تحديثات مرنة وفورية بغض النظر عن إصدارات النواة التي تم نشرها. والأهم من ذلك، تؤكّد الاختبارات أنّ هذه البيانات المستندة إلى المختبرات تحقّق تحسينات في الأداء مماثلة لتلك التي تحقّقها أساطيل المركبات في العالم الحقيقي.
- الأدوات والبيئة: نُثبّت ذاكرة ROM على الأجهزة الاختبارية باستخدام أحدث صورة لنواة النظام، ونستخدم simpleperf لتسجيل عمليات تنفيذ التعليمات. تعتمد هذه العملية على إمكانات الأجهزة لتسجيل سجلّ التفرّع، وتستخدم تحديدًا إضافة ARM Embedded Trace Extension (ETE) وإضافة ARM Trace Buffer Extension (TRBE) على أجهزة Pixel.
- أحمال العمل: ننشئ حمل عمل تمثيليًا باستخدام أهم 100 تطبيق من حيث الرواج من مجموعة أدوات اختبار توافق تطبيقات Android (C-Suite). للحصول على البيانات الأكثر دقةً، نركّز على ما يلي:
- تشغيل التطبيق: تحسين الأداء للحدّ من تأخُّر ظهور التطبيق للمستخدمين
- الزحف المستند إلى الذكاء الاصطناعي: محاكاة تفاعلات المستخدمين المتواصلة والمتطوّرة
- المراقبة على مستوى النظام: تسجيل أنشطة التطبيقات في المقدّمة، بالإضافة إلى أحمال العمل الأساسية في الخلفية وعمليات الاتصال بين العمليات
- التحقّق من الصحة: يعرض عبء العمل المركّب هذا تشابهًا بنسبة% 85 مع أنماط التنفيذ التي تم جمعها من أسطولنا الداخلي.
- البيانات المستهدَفة: من خلال تكرار هذه الاختبارات بشكل كافٍ، نجمع أنماط تنفيذ عالية الدقة تمثّل بدقة تفاعل المستخدمين في العالم الحقيقي مع التطبيقات الأكثر شيوعًا. علاوةً على ذلك، يتيح لنا إطار العمل القابل للتوسيع هذا دمج أحمال العمل ومقاييس الأداء الإضافية بسلاسة لتوسيع نطاق تغطيتنا.
الخطوة 2: معالجة الملف الشخصي
نُجري معالجة لاحقة لبيانات التتبُّع الأولية لضمان أنّها نظيفة وفعّالة وجاهزة للمترجم.
- التجميع: ندمج البيانات من عمليات تشغيل الاختبارات والأجهزة المتعددة في عرض نظام واحد.
- الإحالة الناجحة: نحوّل عمليات التتبُّع الأولية إلى تنسيق ملف AutoFDO، مع فلترة الرموز غير المرغوب فيها حسب الحاجة.
- تقليل حجم الملفات الشخصية: نعمل على تقليل حجم الملفات الشخصية لإزالة البيانات الخاصة بالدوال "غير النشطة"، ما يتيح لها استخدام التحسين العادي. يمنع ذلك حدوث تراجع في الرموز البرمجية التي نادرًا ما يتم استخدامها ويتجنّب الزيادات غير الضرورية في حجم الملفات الثنائية.
الخطوة 3: اختبار الملف الشخصي
قبل نشر الملفات الشخصية، يتم التحقّق منها بدقة لضمان تحقيق تحسينات متّسقة في الأداء بدون مخاطر عدم الاستقرار.
- تحليل الملف الشخصي والرمز الثنائي: نقارن بدقة محتوى الملف الشخصي الجديد (بما في ذلك الوظائف النشطة وعدد العيّنات وحجم الملف الشخصي) بالإصدارات السابقة. نستخدم الملف الشخصي أيضًا لإنشاء صورة نواة جديدة، وتحليل الملفات الثنائية لضمان أنّ التغييرات في قسم النص تتوافق مع التوقعات.
- التحقّق من الأداء: ننفّذ مقاييس أداء مستهدَفة على صورة النواة الجديدة. ويؤكّد ذلك أنّها تحافظ على التحسينات في الأداء التي تمّ تحديدها من خلال خطوط الأساس السابقة.
التحديثات المستمرة
يتغير الرمز بمرور الوقت، لذا سيفقد الملف الثابت فعاليته في النهاية. للحفاظ على أعلى مستوى من الأداء، نشغّل مسار التعلّم باستمرار لإجراء تعديلات منتظمة:
- إعادة التحميل المنتظمة: نعيد تحميل الملفات الشخصية في فروع LTS لنواة Android قبل كل إصدار من GKI، ما يضمن تضمين كل إصدار لأحدث بيانات الملفات الشخصية.
- التوسّع في المستقبل: نعمل حاليًا على توفير هذه التحديثات في الفولتَين
android16-6.12وandroid15-6.6، وسنوسّع نطاق التوافق ليشمل إصدارات GKI الأحدث، مثل الإصدارandroid17-6.18القادم.
ضمان الاستقرار
من الأسئلة الشائعة حول التحسين المستند إلى الملف الشخصي ما إذا كان يؤدي إلى مخاطر عدم الاستقرار. بما أنّ AutoFDO تؤثّر بشكل أساسي في إرشادات المترجم، مثل تضمين الدوال وتنسيق الرموز، بدلاً من تغيير منطق الرمز المصدر، فإنّها تحافظ على السلامة الوظيفية للنواة. وقد أثبتت هذه التكنولوجيا فعاليتها على نطاق واسع، إذ إنّها تُستخدَم منذ سنوات كأداة تحسين عادية لمكتبات نظام Android الأساسي وChromeOS والبنية الأساسية لخوادم Google.
لضمان سلوك متّسق بشكل أكبر، نطبّق استراتيجية "متحفّظة تلقائيًا". يتم تحسين الوظائف غير المتوفّرة في ملفات التعريف عالية الدقة باستخدام طرق التجميع العادية. يضمن ذلك أن تتصرف الأجزاء "الباردة" أو التي يتم تنفيذها نادرًا من النواة تمامًا كما تتصرف في الإصدار العادي، ما يمنع حدوث تراجع في الأداء أو سلوكيات غير متوقعة في الحالات الحدية.
العمل للمستقبل
نعمل حاليًا على نشر AutoFDO في الفروع android16-6.12 وandroid15-6.6. بالإضافة إلى هذا الطرح الأولي، نرى عدة طرق واعدة لتعزيز التكنولوجيا بشكل أكبر:
- توسيع نطاق الوصول: نتطلّع إلى نشر ملفات AutoFDO على إصدارات أحدث من نواة GKI واستهداف المزيد من إصدارات البناء بالإضافة إلى
aarch64الحالية. - تحسين وحدة GKI: يركّز التحسين حاليًا على رمز النواة الثنائي الرئيسي (
vmlinux). وقد يؤدي توسيع نطاق AutoFDO ليشمل وحدات GKI إلى تحقيق مزايا الأداء لجزء أكبر من النظام الفرعي للنواة. - توافق وحدات المورّدين: يهمّنا أيضًا توفير توافق AutoFDO مع وحدات المورّدين التي تم إنشاؤها باستخدام حزمة تطوير برامج التشغيل (DDK). وبما أنّ الدعم متاح حاليًا في نظام الإنشاء (Kleaf) وأدوات إنشاء الملفات الشخصية (simpleperf)، يتيح ذلك للمورّدين تطبيق تقنيات التحسين نفسها على برامج تشغيل الأجهزة المحدّدة.
- تغطية أوسع للملفات الشخصية: من المحتمل جمع ملفات شخصية من مجموعة أكبر من رحلات المستخدمين الرئيسية (CUJ) لتحسينها.
من خلال توفير AutoFDO في نواة Android، نضمن تحسين الأساس الذي يستند إليه نظام التشغيل بما يتناسب مع طريقة استخدامك لجهازك كل يوم.
-
أخبار المنتجاتعلى Google Play، نعمل باستمرار على توسيع منصة الاشتراكات لمساعدتك في تعزيز النمو والتكيّف مع نماذج الأعمال الجديدة وتلبية احتياجات المستخدمين أينما كانوا.
Sheenam Mittal • مدّة القراءة: 4 دقائق -
أخبار المنتجاتفي العام الماضي، أصبح بإمكان "استوديو Android" استخدام أي نموذج للذكاء الاصطناعي. واليوم، نتّخذ الخطوة التالية من خلال توفير إمكانية اختيار وكلاء الترميز.
Matthew Warner • مدّة القراءة: 3 دقائق -
أخبار المنتجاتتقدّم Googlebook فئة جديدة من أجهزة الكمبيوتر المحمول المستندة إلى أساس Android المشترك. تجمع أجهزة Chromebook Plus بين سهولة استخدام الأجهزة الجوّالة وقوة أجهزة الكمبيوتر المكتبي، وهي مزوّدة بأجهزة عالية الأداء من شركاء مثل HP وDell وLenovo وAcer وAsus.
Fahd Imtiaz, Loryn Hairston • مدّة القراءة: 4 دقائق
يمكنك تلقّي أحدث الإحصاءات حول تطوير تطبيقات Android في بريدك الوارد أسبوعيًا.