Оптимизировать размер страницы 16 КБ.

Для большинства задач программирования размер страницы не имеет значения. Однако, если вы выделяете большие объёмы памяти, работаете с высокооптимизированными компонентами, взаимодействуете напрямую с ядром или выполняете большие объёмы операций с файлами, переход Android на размер страницы 16 КБ может добавить дополнительные факторы для анализа производительности. В этом документе рассматриваются некоторые способы, которыми размер страницы влияет на динамику производительности.

Обнаружение проблем с памятью

При выделении памяти с помощью mmap убедитесь, что вы всегда передаёте аргумент, кратный размеру страницы. Если вы запрашиваете 4096 байт в системе с размером страницы 16 КБ, ядро ​​выделяет 16 KB , тратя 12 KB впустую. Просмотр /proc/maps и /proc/smaps (или использование инструмента Android showmap , который наглядно показывает неиспользуемое пространство) или проверка strace вашего процесса могут помочь обнаружить эти проблемы.

Обнаружение проблем с местом на диске

Устройства на базе Android 15 и более поздних версий по умолчанию имеют выровненные ELF-файлы размером 16 КБ, и многие приложения также выровнены по размеру 16 КБ. Независимо от системы, у многих файлов увеличен отступ. Чтобы узнать реальный размер файла на диске, можно использовать du <my file> чтобы узнать, сколько килобайт занимает файл. Чтобы узнать видимый размер файла, можно использовать du -b <my file> , которая покажет размер в байтах. Если видимый размер больше реального, это обычно означает, что файл сжат или содержит разреженные области. Если видимый размер меньше реального, файл, вероятно, имеет дополнительные метаданные или может быть разделен на диске. Используя эти проверки, можно проанализировать реальный размер файлов на диске.