Per la maggior parte delle attività di programmazione, le dimensioni della pagina non sono pertinenti. Tuttavia, se stai allocando grandi quantità di memoria, lavori su componenti altamente ottimizzati, interagisci direttamente con il kernel o manipoli una grande quantità di file, la transizione di Android alle dimensioni di pagina di 16 KB potrebbe aggiungere considerazioni all'analisi delle prestazioni. Questo documento evidenzia alcuni modi in cui le dimensioni delle pagine cambiano le dinamiche del rendimento.
Rilevare problemi di memoria
Quando allocassi la memoria con mmap
, assicurati di passare sempre un argomento
che sia un multiplo delle dimensioni 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 bene lo spazio sprecato) o il controllo del strace
del processo
può aiutarti a rilevarli.
Rilevare problemi di spazio su disco
I dispositivi lanciati su Android 15 e versioni successive hanno file ELF allineati a 16 KB per impostazione predefinita e anche molte applicazioni sono allineate a 16 KB. Indipendentemente dal sistema, molti file hanno un'abbondanza di spaziatura. 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, in genere significa che il file è compresso o contiene regioni sparse. Quando le dimensioni apparenti sono inferiori a quelle reali, è probabile che il file contenga metadati aggiuntivi o possa essere suddiviso sul disco. Utilizzando questi controlli, puoi analizzare le dimensioni reali dei file sul disco.