С миллиардами пользователей Android по всему миру, компания Meta обратила внимание на оптимизацию производительности своих приложений, воспользовавшись возможностями Baseline Profiles. Понимая, что производительность приложения критически важна для пользовательского опыта, специалисты компании столкнулись с рядом вызовов, связанных с временем старта, отображением кадров и отзывчивостью интерфейса.
Основываясь на необходимости улучшения этих показателей, в Meta была создана инфраструктура для
Технические проблемы и решения Meta
Внутри Meta внимание было сосредоточено на таких приложениях, как Facebook и Instagram, которые загружают более 20 000 классов при запуске. Частые обновления приводили к тому, что скомпилированный код терялся, и на передний план выходила необходимость адаптации кода и профилей в условиях постоянных изменений.
Особые сложности возникали из-за особенностей выполнения Dalvik Executable (dex) байт-кода в Android, где методы изначально интерпретируются, а затем компилируются в машинный код посредством just-in-time (JIT) компиляции. Стоимость загрузки классов и интерпретации складывалась в заметные затраты времени, особенно при холодном запуске.
Инструменты и исследовательские методы
Meta использует инструментарий от Google, такой как Macrobenchmark, для генерации Baseline Profiles, что позволяет разработчикам быстро и точно управлять оптимизациями на стадии установки. Введение Baseline Profiles дает возможность не только контролировать процесс оптимизации, но и настроить его на определенные пользовательские сценарии, выходящие за рамки простого старта приложения.
Технические эксперименты Meta показали необходимость строгих проверок и тюнинга профилей. Первоначально консервативный подход — требовать появление классов и методов в 80–90% трассировок — постепенно уступил место более динамичным критериям, включая классы и методы, появляющиеся как минимум в 20% холодных стартов.
Большинство применённых изменений привели к увеличению скорости запуска приложений, улучшению прокрутки новостной ленты и снижению задержки навигации. Пелерования откатов потребовали тщательных измерений и анализа, чтобы избежать негативного влияния на производительность.
Польза и результаты применения
В Meta отмечают, что внедрение Baseline Profiles привело к стабильным положительным изменениям, улучшив различные аспекты пользовательского взаимодействия в диапазоне от 3% до 40%. Эти достижения были достигнуты благодаря постоянным инвестициям и экспериментам с профилями, значительно повысившими качество использования приложений среди широкой аудитории пользователей Android.
Советы разработчикам Android включают в себя сбор репрезентативных данных, настройку порогов включения и измерение воздействия Baseline Profiles во время запуска и основных пользовательских сценариев.



