Google внедряет AutoFDO в ядро Android 16: интерфейс станет плавнее, приложения — быстрее

Google начала масштабное внедрение технологии Automatic Feedback-Directed Optimization (AutoFDO) в ядро Android, включая ветки android16-6.12 и android15-6.6, а в перспективе и android17-6.18. Такой подход позволяет точечно оптимизировать код ядра на основе реальных сценариев работы, что должно обеспечить более плавный интерфейс, быстрееe переключение между приложениями и заметный выигрыш в автономности.

Google внедряет AutoFDO в ядро Android 16: интерфейс станет плавнее, приложения — быстрее

По оценкам Google, на ядро приходится около 40% всего времени работы CPU смартфона, поэтому даже небольшие улучшения на этом уровне сильно влияют на скорость системы. При стандартной сборке компилятор опирается на эвристики и статический анализ, которые не всегда совпадают с тем, как Android используется в реальной жизни. AutoFDO меняет картину: компилятор получает профиль выполнения кода, основанный на истории ветвлений процессора и реальных путях исполнения инструкций.

Для генерации таких профилей Google использует устройства Pixel в контролируемой лабораторной среде. На них разворачивается универсальное ядро GKI, после чего запускается нагрузка из Top100 популярных приложений из Android Compatibility Test Suite. Инструмент simpleperf с поддержкой ARM Embedded Trace Extension и ARM Trace Buffer Extension фиксирует, какие участки ядра становятся «горячими», а какие почти не используются. Далее трассы агрегируются, конвертируются в профиль AutoFDO и используются при пересборке ядра.

Собранные таким образом профили, по данным Google, на 85% совпадают по шаблонам выполнения с профилями, полученными на внутренних устройствах. Ранние измерения для нативных компонентов Android показали рост скорости загрузки ОС примерно на 2,1% и ускорение «холодного» старта приложений на 4,3%. В ядре AutoFDO аналогично влияет на решения компилятора по инлайнингу, компоновке и раскладке кода, не меняя при этом логику исходников и сохраняя функциональную целостность.

Компания подчеркивает, что новая оптимизация работает «по умолчанию консервативно»: участки, не попавшие в профиль, компилируются стандартным способом, а чрезмерное «вылизывание» редкого кода намеренно избегается, чтобы не получить деградацию производительности и не раздувать бинарники. Перед релизом новые профили проходят проверку, сравниваются с предыдущими и тестируются в бенчмарках. Google уже много лет применяет AutoFDO в пользовательском пространстве Android, ChromeOS и серверной инфраструктуре, а расширение этой технологии на ядро должно стать следующим шагом в повышении отзывчивости и энергоэффективности устройств на Android.

Тоже интересно