Optimiza para un tamaño de página de 16 KB

Para la mayoría de las tareas de programación, el tamaño de la página no es relevante. Sin embargo, si asignas grandes cantidades de memoria, trabajas en componentes altamente optimizados, estableces una interfaz directamente con el kernel o realizas grandes cantidades de manipulación de archivos, la transición de Android al tamaño de página de 16 KB podría agregar consideraciones a tu análisis de rendimiento. En este documento, se destacan algunas formas en que el tamaño de la página cambia la dinámica del rendimiento.

Cómo detectar problemas de memoria

Cuando asignes memoria con mmap, asegúrate de pasar siempre un argumento que sea un múltiplo del tamaño de la página. Si solicitas 4096 bytes en un sistema con un tamaño de página de 16 KB, el kernel asigna 16 KB, lo que desperdicia 12 KB de espacio. Consultar /proc/maps, /proc/smaps (o usar la herramienta showmap de Android, que imprime el espacio desperdiciado de forma correcta) o verificar el strace de tu proceso puede ayudarte a detectarlos.

Cómo detectar problemas de espacio en el disco

Los dispositivos que se inician en Android 15 y versiones posteriores tienen ELFs alineados de 16 KB de forma predeterminada, y muchas aplicaciones también están alineadas de 16 KB. Independientemente del sistema, muchos archivos tienen un padding aumentado. Para ver el tamaño real en el disco, puedes usar du <my file> para ver cuántos kilobytes ocupa un archivo. Para ver el tamaño aparente de un archivo, puedes usar du -b <my file>, que muestra el tamaño en bytes. Cuando el tamaño aparente es mayor que el real, por lo general, significa que el archivo está comprimido o tiene regiones dispersas. Cuando el tamaño aparente es menor que el real, es probable que el archivo tenga metadatos adicionales o que esté dividido en el disco. Con estas verificaciones, puedes analizar el tamaño real de los archivos en el disco.