Большинство операционных систем используют размер страницы 4 КБ, поскольку это поддерживает большинство ЦПУ, но Android часто работает на процессорах Arm, способных обрабатывать 16-килобайтные страницы. Поэтому Google активировал размер страницы 16 КБ как опцию для разработчиков в выбранных Android устройствах, что обеспечивает прирост производительности на 5–10% ценой увеличения потребления памяти примерно на 9%.
В отличие от режимов 32/64 бит, размер страницы не относится к интерфейсу двоичных приложений (ABI). Поэтому приложение, адаптированное к произвольному размеру страниц, может работать на устройствах с 4 КБ и 16 КБ без изменений. Программы на Java или Kotlin не требуют доработок, но использующие нативный код (C/C++) или зависимости необходимо перекомпилировать для совместимости с 16-килобайтными страницами.
Google приводит детали преимуществ 16-килобайтных страниц на сайте для разработчиков :
- Сокращение времени запуска приложений при нехватке памяти: в среднем на 3,16% с заметным улучшением (до 30%) для отдельных приложений
- Снижение энергопотребления при запуске приложения: в среднем на 4,56%
- Более быстрый запуск камеры: горячий запуск в среднем на 4,48% быстрее, а холодный запуск в среднем на 6,60% быстрее
- Улучшено время загрузки системы: в среднем на 1,5% (примерно 0,8 секунды)
Google заявляет, что указанные улучшения основаны на первоначальном тестировании, и неясно, какую аппаратную платформу использовали для тестов. Также объясняется: «Ядро Linux тесно связано с определенным размером страницы, поэтому при сборке ядра мы должны выбрать используемый размер страницы, тогда как остальная часть операционной системы остается неизменной». В качестве примечания: проверить размер страницы в Linux можно следующей командой:
$ getconf PAGESIZE
4096
Опция размера страницы 16KB изначально будет доступна только для Pixel 8 и Pixel 8 Pro с Android 15 QPR1 Beta, но компания также работает с партнерами, чтобы предоставить опцию для разработчиков на существующих устройствах. Альтернатива — использование цели эмулятора 16 КБ в Android Studio.
Помимо упомянутого выше сайта для разработчиков, подробности об этом изменении также можно найти в записи блога разработчиков Android .
Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.