Para a maioria das tarefas de programação, o tamanho da página não é relevante. No entanto, se você estiver alocando grandes quantidades de memória, trabalhando em componentes altamente otimizados, interagindo diretamente com o kernel ou fazendo grandes quantidades de manipulação de arquivos, a transição do Android para o tamanho de página de 16 KB poderá adicionar considerações à sua análise de desempenho. Este documento destaca algumas maneiras como o tamanho da página muda a dinâmica da performance.
Detectar problemas de memória
Ao alocar memória com mmap
, sempre transmita um argumento
que seja um múltiplo do tamanho da página. Se você solicitar 4096
bytes em um sistema com um tamanho de página de 16 KB, o kernel vai alocar 16 KB
, desperdiçando 12 KB
de espaço. Para detectar esses problemas, confira /proc/maps
, /proc/smaps
ou use a ferramenta do Android showmap
, que mostra o espaço desperdiçado de maneira organizada. Também é possível verificar o strace
do seu processo.
Detectar problemas de espaço em disco
Os dispositivos lançados no Android 15 e em versões mais recentes têm ELFs alinhados de 16 KB por
padrão, e muitos aplicativos também são alinhados de 16 KB. Independente do sistema, muitos arquivos têm padding aumentado. Para conferir o tamanho real no disco, use du <my file>
e veja quantos kilobytes um arquivo ocupa. Para conferir o
tamanho aparente de um arquivo, use du -b <my file>
, que mostra o tamanho
em bytes. Quando o tamanho aparente é maior que o real, isso geralmente significa que o arquivo está compactado ou tem regiões esparsas. Quando o tamanho aparente é menor que o real, o arquivo provavelmente tem metadados extras ou está dividido no disco. Com essas verificações, é possível analisar o tamanho real dos arquivos no disco.