對於大多數程式設計工作而言,頁面大小並不重要。 不過,如果您要分配大量記憶體、處理高度最佳化的元件、直接與核心介面互動,或是進行大量檔案操作,Android 轉換為 16 KB 頁面大小可能會為效能分析增加考量。本文將重點說明網頁大小如何改變效能動態。
偵測記憶體問題
使用 mmap
分配記憶體時,請務必傳遞頁面大小的倍數做為引數。如果您在頁面大小為 16 KB 的系統上要求 4096
個位元組,核心就會分配 16 KB
個位元組,浪費 12 KB
的空間。查看 /proc/maps
、/proc/smaps
(或使用 Android 工具 showmap
,該工具會清楚列印浪費的空間),或檢查程序的 strace
,都有助於偵測這些問題。
偵測磁碟空間問題
搭載 Android 15 以上版本的裝置預設會使用 16 KB 對齊的 ELF,許多應用程式也會使用 16 KB 對齊。無論是哪種系統,許多檔案的填補空間都會增加。如要查看磁碟上的實際大小,可以使用 du <my file>
瞭解檔案佔用多少 KB。如要查看檔案的實際大小,可以使用 du -b <my file>
,這個指令會以位元組為單位顯示大小。如果顯示大小大於實際大小,通常表示檔案經過壓縮或含有稀疏區域。如果顯示大小小於實際大小,檔案可能含有額外中繼資料,或是在磁碟上分割。您可以使用這些檢查項目,分析磁碟上檔案的實際大小。