Per la maggior parte delle attività di programmazione, la dimensione della pagina non è pertinente. Tuttavia, se allochi grandi quantità di memoria, lavori su componenti altamente ottimizzati, interagisci direttamente con il kernel o esegui grandi quantità di manipolazione di file, la transizione di Android alle dimensioni della pagina di 16 KB potrebbe aggiungere considerazioni alla tua analisi delle prestazioni. Questo documento mette in evidenza alcuni modi in cui le modifiche alle dimensioni della pagina cambiano le dinamiche delle prestazioni.
Rilevare problemi di memoria
Quando allochi memoria con mmap
, assicurati di passare sempre un argomento
che sia un multiplo della dimensione della pagina. Se richiedi 4096
byte su un sistema con una
dimensione pagina di 16 KB, il kernel alloca 16 KB
, sprecando 12 KB
di
spazio. La visualizzazione di /proc/maps
, /proc/smaps
(o l'utilizzo dello strumento Android showmap
che stampa in modo chiaro lo spazio sprecato) o il controllo di strace
del processo
può aiutarti a rilevarli.
Rilevamento dei problemi di spazio su disco
I dispositivi lanciati su Android 15 e versioni successive hanno ELF allineati a 16 KB per impostazione predefinita e anche molte applicazioni sono allineate a 16 KB. Indipendentemente dal
sistema, molti file hanno un padding maggiore. Per visualizzare le dimensioni reali sul disco, puoi utilizzare du <my file>
per vedere quanti kilobyte occupa un file. Per visualizzare le
dimensioni apparenti di un file, puoi utilizzare du -b <my file>
, che mostra le dimensioni
in byte. Quando le dimensioni apparenti sono maggiori di quelle reali, di solito significa
che il file è compresso o presenta regioni sparse. Quando le dimensioni apparenti sono
inferiori a quelle reali, è probabile che il file contenga metadati aggiuntivi o che sia suddiviso
sul disco. Utilizzando questi controlli, puoi analizzare le dimensioni reali dei file sul disco.