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 pode 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 alocará 16 KB
, desperdiçando 12 KB
de
espaço. A visualização de /proc/maps
, /proc/smaps
(ou o uso da ferramenta Android showmap
,
que imprime o espaço desperdiçado) ou a verificação do strace
do processo
pode ajudar a detectá-los.
Detectar problemas de espaço em disco
Os dispositivos lançados no Android 15 e 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. Independentemente do
sistema, muitos arquivos têm um padding maior. Para conferir o tamanho real no disco, use
du <my file>
para saber 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 pode ser dividido
no disco. Com essas verificações, é possível analisar o tamanho real dos arquivos no disco.