Google 正在為 Android 核心(kernel)引入一項全新的優化技術,透過分析用戶實際使用手機的方式來讓系統運行得更快。這項名為「自動反饋導向優化」(Automatic Feedback-Directed Optimization,簡稱 AutoFDO)的技術,將會為 Android 設備帶來更快的應用程式啟動、更流暢的效能體驗,以及更長的電池續航力。
什麼是 AutoFDO?
在標準軟體編譯過程中,編譯器會根據靜態程式碼提示做出數千個微小決定,例如是否要內嵌某個函數、條件判斷的哪個分支可能更常被執行。然而,這些啟發式方法並不總是能準確預測實際手機使用時的程式碼執行行為。
AutoFDO 改變了這一點,它透過真實世界的執行模式來引導編譯器。這些模式代表了程式碼在實際使用過程中最常見的指令執行路徑,透過記錄 CPU 的分支歷史來收集。Google 在受控的實驗室環境中使用 Pixel 手機進行測試,模擬使用前 100 個最受歡迎的 Android 應用程式的情境,同時使用分析工具追蹤核心中最常被使用的部分。系統會識別哪些程式碼是「熱點」(經常使用)以及哪些是「冷點」(很少使用)。
為什麼要優化核心?
Android 核心是作業系統最重要的部分之一。它位於 Android 的核心位置,負責管理 CPU、應用程式和硬體之間的通訊。根據 Google 的說法,核心大約佔用了 Android 設備 40% 的 CPU 時間,因此即使是很小的改進也能對實際效能產生明顯影響。
實際效能提升有多少?
Google 表示,他們已經在 Android 核心的關鍵指標上看到了「令人印象深刻的改進」。根據 Google 官方部落格的說明,Android 系統在導入 AutoFDO(Automatic Feedback-Directed Optimization,自動回饋導向最佳化)技術後,各項系統指標所獲得的「效能提升百分比」如下:
-
Binder-rpc (21.7%)、Hwbinder (20%) 與 Binder Transactions (addints) (12.3%): Binder 是 Android 系統中最核心的「跨行程通訊」(IPC) 機制。這些數據顯示,系統內部不同服務、硬體層和應用程式之間互相傳遞資料與指令的速度,獲得了 12% 到近 22% 的顯著提升。
-
System Call Efficiency (bionic mmap) (9.3%): 系統呼叫(System Call)效率的提升。這裡特別指出 Android 的基礎 C 函式庫 (Bionic) 在處理記憶體對映 (mmap) 操作時,效率提高了 9.3%,這對於系統整體的記憶體管理非常有幫助。
-
Cold App Launch Time (4.3%): 冷啟動應用程式時間(也就是應用程式在背景完全沒暫存,從零開始載入的時間)加快了 4.3%。這代表使用者在點擊 App 圖示時,等待載入的時間變短了。
-
Boot Time (2.1%): 設備的整體開機時間縮短了 2.1%。
這些數據不僅僅是理論上的改善。它們實際上轉化為更靈敏的操作介面、更快的應用程式切換、延長的電池續航力,以及對終端用戶整體更具回應性的設備。
Google 已經在使用者空間(userspace)中應用 AutoFDO 優化原生執行檔和函式庫,實現了約 4.3% 的冷應用程式啟動改善和 2.1% 的開機時間減少。現在,這項技術進一步延伸到核心層級,帶來更顯著的效能提升。
如何運作:完整流程
Google 的部署策略涉及一個複雜的流程,以確保配置檔案保持相關性並且效能維持穩定。
第一步:配置檔案收集
雖然 Google 依靠內部測試設備來分析使用者空間二進制檔案,但他们針對通用核心映像(Generic Kernel Image,GKI)轉向了受控實驗室環境。將分析與設備發布週期脫鉤,允許靈活的即時更新,與已部署的核心版本無關。關鍵是,測試確認這種基於實驗室的數據能提供與真實世界設備相當的效能提升。
Google 使用來自 Android 應用程式相容性測試套件(C-Suite)的前 100 個最受歡迎應用程式來建構代表性工作負載。為了捕捉最準確的數據,他們專注於:
- 應用程式啟動:針對最可見的用戶延遲進行優化
- 全系統監控:不僅捕捉前台應用程式活動,還包括關鍵的背景工作負載和跨程序通訊
這種合成工作負載顯示與從內部設備收集的執行模式有 85% 的相似度。
第二步:配置檔案處理
Google 在原始追蹤資料上進行後處理,確保其乾淨、有效,並準備好提供給編譯器。他們將來自多個測試執行和設備的數據整合成單一系統視圖。
第三步:核心建構與部署
當使用這些配置檔案重建核心時,編譯器可以根據實際 Android 工作負載做出更聰明的優化決定。這讓系統的經常使用部分能夠更有效地執行。
何時更新?
Google 目前正在 android16-6.12 和 android15-6.6 分支中部署核心 AutoFDO:這是最近 Android 版本所使用的版本,並計劃將其擴展到未來的核心版本。
隨著時間推移,Google 希望將這些優化應用到核心的更多部分,包括額外的系統元件和手機製造商添加的硬體驅動程式,例如相機和數據機的驅動程式。這意味著未來的 Android 設備可能在相機效能、網路連線和其他硬體相關功能方面也會有所改善。
對用戶有什麼意義?
對於一般 Android 用戶來說,這項技術的影響可能是漸進但明顯的。雖然 Google 每年都會進行許多效能改進,但 AutoFDO 代表了一種更根本的方法,不是針對特定問題進行修補,而是根據人們實際使用手機的方式來全面重新最佳化整個系統。隨著時間推移,您可能會注意到:
- 應用程式啟動更快
- 多工切換更流暢
- 整體系統反應更靈敏
- 電池續航力可能會略有改善
這項技術的另一個重要意義是,它不需要用戶進行任何操作或設定。所有優化都會在系統層級自動進行,用戶在下次更新時就會自動受益。這是 Google 持續努力讓 Android 變得更快、更高效的最新成果。
