Разработчики из Google работают над внедрением ряда фоновых улучшений, которые должны сделать смартфоны на базе Android более быстрыми и автономными. Для этого задействуют платформу Android LLVM toolchain для обновления ядра Android и интеграции технологии Automatic Feedback-Directed Optimization (AutoFDO).
Если говорить простыми словами, то любой Android-смартфон должен принимать «тысячи мелких решений» в фоновом режиме, что в конечном итоге потребляет значительную часть ресурсов микропроцессора. Технология AutoFDO позволяет анализировать пути выполнения программного кода и передаёт эти информацию компилятору, направляя его по «наиболее распространённым» путям и тем самым снижая нагрузку. За счёт этого высвобождается больше вычислительной мощности для выполнения других задач, а сопутствующее уменьшение энергопотребления благоприятно сказывается на автономности.
«При стандартной сборке программного обеспечения компилятор принимает тысячи мелких решений, например, стоит ли встраивать функцию напрямую и какая ветвь условного оператора с наибольшей вероятностью будет выполнена. Эти решения основываются на статистических подсказках в коде. Хотя такой подход полезен, он не всегда точно предсказывает выполнение кода в реальных условиях использования. AutoFDO меняет это, используя для управления компилятором реальные сценарии выполнения кода. Эти сценарии представляют собой наиболее распространённые пути выполнения инструкций в процессе фактического использования программы; они фиксируются путём записи истории ветвлений процессора», — говорится в сообщении Google.
Отмечается, что такие данные можно собирать с парка реальных устройств, находящихся в эксплуатации. Однако разработчики синтезируют их на основе данных, полученных при репрезентативных нагрузках, например, при запуске 100 наиболее популярных приложений. Для сбора данных задействуют профилировщик выборочного типа, который определяет, какие части кода являются часто используемыми, а какие нет. После повторной сборки ядра с использованием созданных ранее профилей компилятор может принимать гораздо более разумные решения по оптимизации процессов, которые к тому же адаптированы к реальным рабочим нагрузкам Android.
Ранние тесты Google показали, что такой подход позволяет добиться реальных улучшений. Скорость загрузки ОС повысилась на 2,1 %, а запуск приложений в «холодном» режиме, когда приложения полностью выгружены, — на 4,3 %. Также отмечается улучшения в работе ряда других показателей, которые менее заметны для конечных пользователей.
Google отметила, что функция AutoFDO в ядре Android будет работать «по умолчанию консервативно». Это значит, что в случае выявления процессов, выходящих за рамки заданных шаблонов, обработка будет происходить на основе прежних методов. Новая функция появится в последних версиях ядра Android (android16-6.12 и android15-6.6, а также в будущем android17-6.18). По словам Google, внедрение новой технологии приведёт к «более отзывчивому интерфейсу, более быстрому переключению между приложениями, увеличенному времени автономной работы и в целом более оперативной работе конечных пользовательских устройств».