16 KB sayfa boyutu için optimize etme

Çoğu programlama görevi için sayfa boyutu önemli değildir. Ancak, büyük miktarda bellek ayırıyorsanız, yüksek düzeyde optimize edilmiş bileşenler üzerinde çalışıyorsanız, doğrudan çekirdekle arayüz oluşturuyorsanız veya büyük miktarda dosya üzerinde işlem yapıyorsanız Android'in 16 KB sayfa boyutuna geçişi, performans analizinize dikkate alınması gereken noktalar ekleyebilir. Bu dokümanda, sayfa boyutunun performansın dinamiklerini değiştirmesinin bazı yolları vurgulanmaktadır.

Bellek sorunlarını algılama

mmap ile bellek ayırırken her zaman sayfa boyutunun katı olan bir bağımsız değişken gönderdiğinizden emin olun. 16 KB sayfa boyutuna sahip bir sistemde 4096 bayt isteğinde bulunursanız çekirdek 16 KB bayt ayırır ve 12 KB baytlık alan boşa harcanır. /proc/maps, /proc/smaps değerlerini görüntülemek (veya boş alanı güzel bir şekilde yazdıran Android aracı showmap'i kullanmak) ya da işleminizin strace değerini kontrol etmek bu sorunları tespit etmenize yardımcı olabilir.

Disk alanı sorunlarını algılama

Android 15 ve sonraki sürümlerde kullanıma sunulan cihazlarda varsayılan olarak 16 KB'lık ELF'ler bulunur ve birçok uygulama da 16 KB'lık ELF'lere sahiptir. Sistemden bağımsız olarak birçok dosyada dolgu artırılmıştır. Diskteki gerçek boyutu görüntülemek için du <my file> simgesini kullanarak dosyanın kaç kilobayt yer kapladığını görebilirsiniz. Bir dosyanın görünür boyutunu görüntülemek için du -b <my file> simgesini kullanabilirsiniz. Bu simge, boyutu bayt cinsinden gösterir. Görünen boyut gerçek boyuttan büyükse bu genellikle dosyanın sıkıştırıldığı veya seyrek bölgelere sahip olduğu anlamına gelir. Görünen boyut gerçek boyuttan küçükse dosyada muhtemelen fazladan meta veri vardır veya diskte bölünmüş olabilir. Bu kontrolleri kullanarak diskteki dosyaların gerçek boyutunu analiz edebilirsiniz.