Mengoptimalkan ukuran halaman 16 KB

Untuk sebagian besar tugas pemrograman, ukuran halaman tidak relevan. Namun, jika Anda mengalokasikan sejumlah besar memori, mengerjakan komponen yang sangat dioptimalkan, berinteraksi langsung dengan kernel, atau melakukan manipulasi file dalam jumlah besar, transisi Android ke ukuran halaman 16 KB dapat menambah pertimbangan pada analisis performa Anda. Dokumen ini menyoroti beberapa cara ukuran halaman mengubah dinamika performa.

Mendeteksi masalah memori

Saat Anda mengalokasikan memori dengan mmap, pastikan Anda selalu meneruskan argumen yang merupakan kelipatan ukuran halaman. Jika Anda meminta 4096 byte pada sistem dengan ukuran halaman 16 KB, kernel akan mengalokasikan 16 KB, sehingga membuang 12 KB ruang. Melihat /proc/maps, /proc/smaps (atau menggunakan alat Android showmap yang mencetak ruang yang terbuang dengan baik), atau memeriksa strace proses Anda dapat membantu mendeteksi hal ini.

Mendeteksi masalah ruang disk

Perangkat yang diluncurkan di Android 15 dan yang lebih baru memiliki ELF yang selaras 16 KB secara default, dan banyak aplikasi juga selaras 16 KB. Terlepas dari sistemnya, banyak file yang memiliki padding lebih besar. Untuk melihat ukuran sebenarnya di disk, Anda dapat menggunakan du <my file> untuk melihat berapa banyak kilobyte yang digunakan file. Untuk melihat ukuran file yang terlihat, Anda dapat menggunakan du -b <my file>, yang menunjukkan ukuran dalam byte. Jika ukuran yang terlihat lebih besar daripada ukuran sebenarnya, biasanya berarti bahwa file dikompresi atau memiliki area yang jarang. Jika ukuran yang terlihat lebih kecil daripada ukuran sebenarnya, file tersebut kemungkinan memiliki metadata tambahan atau mungkin dibagi-bagi di disk. Dengan menggunakan pemeriksaan ini, Anda dapat menganalisis ukuran sebenarnya file di disk.