眾所周知,Quest 2極為嚴格的控制SoC運行頻率,目的就是保證整機的「散熱性能」,說白了就是發熱不能嚴重、風扇噪音不能大。這也是VR頭戴設備中降低用戶體驗的兩個關鍵指標。
對於Quest 2很直接的一個優勢就是,用戶大多時候聽不到狂轉的風扇噪音。不過,Meta在最新的v55系統中進一步釋放了Quest 2和Quest Pro的頻率限制,CPU、GPU都有大幅提升,這些能力可以提升遊戲幀率或渲染解析度,對體驗提升都有重要作用。
那麼,剛剛發布的蘋果Vision Pro是如何進行控制和管理的呢?
根據現場已經體驗的媒體反饋,大部分人反饋Vision Pro發熱不明顯。準確的說,這句話缺少「場景」描述。因為Vision Pro的演示中大部分都還是以2D場景為主,如果在2D場景下還發熱明顯,那顯然不是蘋果的實力,更會被大家看笑話。因此,更應該看的是Vision Pro運行3D應用時的發熱表現。
這幾天我也看了WWDC關於visionOS的相關課程,其中發現visionOS對於App分類有三種:
- 1. Windows,也就是窗口類2D內容,每個App可擁有多個窗口,支持調整大小;
- 2. Volume,輕量3D內容,支持2D窗口和3D內容混合顯示;
- 3. Space,專屬3D應用,開啟後隱藏其它App,並且支持在透視和沉浸模式切換。
visionOS性能優化策略
雖然現在還不能體驗,但是我們通過其中一個課程(WWDC2023/10100)了解到visionOS對App功能和性能優化的內容,從中我們了解到更詳細的資訊。
- 側重:visionOS中優先熱管理、而非續航;
- 路徑:分析你的App類型,找到優化方法;
- 目標:降低發熱、避免內容占用過大。
和iPhone等移動設備上App的功耗的性能要求不同的是,在Vision Pro和visionOS系統中系統會實時更新,不管你的App的資源占用情況如何。
比如,只要用戶移動身體(轉頭、轉身等)、挪動手、轉動眼睛等動作,系統就需要實時渲染出每一幀,也就是內容是在實時更新的。再比如,多任務場景中空間算法也實時運行,以此保證用戶同時運行多個應用的交互和視覺效果。
和移動平台中優化性能的邏輯有些不同,visionOS中概念和優先級發生了變化:優先考慮散熱性能,而不是電池續航或壽命。很顯然,這一點上蘋果和Meta策略是一致的。
權重方面,不同於iPhone上後台「掛起」影響相對較小,在visionOS中,即便是短暫的暫停、卡頓會對體驗破壞性的影響。
visionOS性能優化的核心:渲染、交互、ARKit、音頻影片播放、SharePlay、以及避免來自系統層面的停止運行。
渲染方面,visionOS渲染幀率默認為90(支持更高幀率),因此應該避免渲染延遲情況。對比其它平台優先側重UI和動畫流暢性,visionOS考慮的更多比如:
- 1,應用單獨運行時的功耗;
- 2,在與其它App同時運行時的功耗;
- 3,在複雜交互時的功耗;
- 4,在播放影片和音頻,如FaceTime、或Personas時的功耗;
- 5,如果是iOS應用,也需要進一步分析和優化。
當然,裡面提到了很多內容涉及渲染優化部分,這裡主要提取一些重要的點。
- 1,渲染目標是確保延遲更低,減少幀丟失。需要從SwiftUI、UIKit,或者RealityKit、Metal分別進行優化。
- 2,交互方面,因為visionOS刷新率在90Hz或更高,因此最佳輸入延遲要
- 3,SharePlay要避免在多個設備之間同步傳輸大量渲染工作,避免熱堆積以及附帶的降頻問題。
- 4,提醒:設備過熱、系統內存不足等,會出現App終止運行的情況。這就需要,在設備過熱時降低複雜的渲染和計算。

對此,蘋果還提供了Metrickit和Xcode Organizer等性能分析工具,進一步幫助開發者優化自己的應用。
參考:Apple