A partir de 27 de março de 2025, recomendamos usar android-latest-release
em vez de aosp-main
para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Otimizar para tamanho de página de 16 KB
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
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 corretamente) ou a verificação do strace
do processo
pode ajudar a detectar esses problemas.
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.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# Optimize for 16 KB page size\n\nFor most programming tasks, the page size isn't relevant.\nHowever, if you're allocating large amounts of memory, working on\nhighly-optimized components, interfacing directly with the kernel, or doing\nlarge amounts of file manipulation, Android's transition to the 16 KB page\nsize could add considerations to your performance analysis. This document\nhighlights some ways page size changes the dynamics of performance.\n\nDetect memory issues\n--------------------\n\nWhen you allocate memory with `mmap`, make sure that you always pass an argument\nthat is a multiple of page size. If you request `4096` bytes on a system with a\n16 KB page size, then the kernel allocates `16 KB`, wasting `12 KB` of\nspace. Viewing `/proc/maps`, `/proc/smaps` (or using the Android tool `showmap`\nwhich prints the wasted space nicely), or checking the `strace` of your process\ncan help detect these.\n\nDetect disk space issues\n------------------------\n\nDevices launching on Android 15 and later have 16 KB aligned ELFs by\ndefault, and many applications are 16 KB aligned as well. Regardless of the\nsystem, many files have increased padding. To view the real size on disk, you\ncan use `du \u003cmy file\u003e` to see how many kilobytes a file takes. To view the\napparent size of a file, you can use `du -b \u003cmy file\u003e`, which shows you the size\nin bytes. When the apparent size is larger than real size, this usually means\nthat the file is compressed or has sparse regions. When the apparent size is\nsmaller than the real size, the file likely has extra metadata or may be split\nup on disk. Using these checks, you can analyze the real size of files on disk."]]