Google預計在之後Android版本支援16 KB分頁大小(Page Size),相較於過去僅支援標準的4 KB分頁大小,這是一項重大更新,官方指出,支援16 KB分頁大小雖會增加約9%記憶體使用量,但也將帶來5-10%系統效能提升。

目前由於還沒有量產16 KB分頁大小的Android裝置,因此Google會先在Android 15提供開發者選項和x86_64模擬器支援,鼓勵開發者先做好準備。

圖片來源/Google

為了提升作業系統整體效能,Google在Android 15增加支援16 KB分頁大小,這也會是第一個支援16 KB分頁大小的Android版本。由於ARM架構處理器在設計時考慮多種分頁大小,因此Android要支援16 KB分頁大小,主要是為了適應ARM的功能。分頁是作業系統管理記憶體的基本單位,大多數現代CPU都是支援4 KB分頁大小,因此過去Android作業系統和應用程式也都是針對4 KB分頁大小最佳化。

大多數CPU中處理器具有一個稱為記憶體管理單元(Memory Management Unit,MMU)的硬體元件,負責管理虛擬記憶體和實體記憶體間的地址轉換,而這種轉換與分頁大小密切相關,當應用程式需要更多記憶體的時候,作業系統就需要介入,並填寫分頁表格條目,將記憶體分配給程序。

所以當Android支援的分頁大小從4 KB增至16 KB,分頁大小增至4倍,記憶體分配的管理工作量也就相對應降低,這讓系統可以把更多時間用於運算影片、遊戲和作業系統等工作。Google特別說明,分頁大小與處理器32位元/64位元模式的應用程式二進位介面(Application Binary Interface,ABI)概念不同。

ABI涉及處理器位寬,直接影響應用程式存取和操作資料的方式,而分頁大小是作業系統管理記憶體的策略,所以當應用程式調整為不依賴特定分頁大小,同一個應用程式的二進位檔案,就可以在支援4 KB和16 KB分頁大小的裝置上運作。Google重新設計了Android 15的底層,因此開始能夠支援不同頁面大小運作,以實現分頁大小無關性。

分頁大小的變動牽涉範圍廣泛,涵蓋作業系統、檔案系統、記憶體管理和Linux核心等層面,而對Android開發者來說,應用程式的程式碼和相依項目都需要重新編譯和調整,才能在相容於16 KB分頁大小的裝置上正確運作,而且因為大多數應用程式和SDK原生程式碼是針對4 KB分頁建置,需要重新對齊,確保相容4 KB和16 KB裝置。

從Android 15 QPR1 Beta版本開始,Pixel 8和Pixel 8 Pro將提供開發人員選項,可切換16 KB和4 KB分頁大小。針對16 KB頁面建置的應用程式,只需使用不同Linux核心,相同二進位檔案就能適用於4 KB和16 KB。因此Google加入一種包含額外Linux核心的方法,運用增量壓縮方法,每個分頁大小的核心版本約占12-16 MB。另外,即便開發者沒有ARM裝置,現在也可以在x86_64模擬器,以4 KB模式模擬16 KB分頁大小支援。

熱門新聞

Advertisement