效能剖析和調整是複雜的工作,感覺更像是一門藝術,而非科學。遊戲中需要完美同步的活動零件眾多,加上特定場景的複雜性,可能會導致難以瞭解及找出問題。在 ChromeOS 上,許多工具的設計都考量到 ARM 晶片組。以下提供一些訣竅,協助您加快審查程序。
在 ChromeOS 上最佳化遊戲效能時,請注意所有裝置都有相同的效能問題,因此改善效能和電池續航力對所有使用者都有益。ChromeOS 傾向使用較大的螢幕和電腦輸入裝置,因此可能更容易出現某些問題。舉例來說,效率不彰的紋理載入演算法可能在較高階的行動裝置上「運作正常」,但在配備 4K 螢幕的 Chromebook 上卻無法跟上。演算法改善後,所有裝置上的遊戲體驗都會提升。
如果您是第一次進行剖析,建議採取以下一般做法:
- 判斷效能是否受下列因素限制:
- CPU
- GPU
- 其他:輸入/磁碟/網路
- 嘗試找出主要原因
- 嘗試最佳化
- 重複
在大多數情況下,遊戲會顯示自身「受 CPU 限制」或「受 GPU 限制」。請使用下列剖析提示和工具,嘗試判斷系統在每個影格「花費時間」的位置。舉例來說,如果 GPU 開始算繪前,CPU 需要很長時間計算和載入頂點,遊戲可能會受到 CPU 限制。反之,如果您使用大量詳細的 GPU 篩選器,遊戲可能就會受到 GPU 限制。請注意,許多行動電話和 ChromeOS 裝置沒有獨立顯示卡。如果桌機遊戲假設 GPU 篩選器速度很快,可能會發現整合式 GPU 轉譯每個場景的時間過長。
如要進一步瞭解如何進行剖析,請參閱 ARM 的「最佳化程序」指南。
工具
雖然您當然可以自行找出瓶頸,但使用適當的工具可讓您更輕鬆地分析遊戲效能,並確信自己專注於正確的事項。市面上有許多工具,但以下是我們常用的程式。
Android Studio 分析器
如要開始分析任何 Android 應用程式,最簡單的方法就是使用整合式 Android Studio 分析器。在 Android Studio 中,請選擇「剖析」而非「執行」,即可執行應用程式並即時瞭解 CPU、記憶體和網路用量。簡單的 CPU 追蹤記錄可快速找出要查看的程式碼區域。
這個工具無法深入瞭解 GPU 使用率,也無法瞭解每個影格同步之間發生的情況,因此雖然是工具箱中實用的工具,但可能不足以讓遊戲以最佳效能執行。
Snapdragon Profiler
由於遊戲在不同裝置上的行為相同,因此如要取得詳細的效能資訊,建議在以 Qualcomm 為基礎的 ARM 手機上使用 Snapdragon Profiler。雖然無法直接在 ChromeOS 裝置上進行剖析,但這項工具可提供資訊,瞭解遊戲在每個影格中花費最多時間的位置,並深入瞭解具體使用的 GPU 呼叫。
舉例來說,如果您發現 GPU 各向異性篩選器耗費大量時間,且在每個影格中佔據大部分工作,變更這項設定可能大幅提升效能。
如果 GPU 時間短且規律,但 CPU 時間佔用過多資源,導致影格無法同步,請檢查紋理載入/影格準備演算法。
詳情請參閱官方使用說明文件。
ARM Mobile Studio
另一個實用的 ARM 裝置剖析器是 ARM Mobile Studio。部分開發人員可能偏好使用這項工具,而非 Snapdragon Profiler,但兩者的使用方式類似。請參閱官方的使用說明文件。
Android GPU 檢查器
Android GPU Inspector 是 Google 開發的新工具,專門協助您透過 OpenGL 和 Vulkan,讓遊戲發揮最佳效能。這項功能目前處於開發人員預覽版狀態,可能需要一些時間才能完成設定,且目前僅適用於少數裝置。這項工具可望成為日後進行圖像剖析的主要工具之一。請參閱官方說明文件。
ARC 總覽追蹤
此外,還有更通用的工具「ARC 總覽追蹤」,運作方式與上述 ARC 圖形追蹤工具類似。這個追蹤器會提供應用程式和 ChromeOS 效能的概略指標。讀出內容會顯示應用程式和 Chrome 本身的 FPS,以及 CPU 使用率、GPU 使用率、耗電量等資訊。您可以多次執行這項工具,並查看每次執行的圖表,這些圖表會以不同顏色重疊顯示,方便您區分。每個追蹤模型都會儲存到「下載」資料夾,日後可重新匯入以進行比較。如要進行一般應用程式健康狀態檢查,建議先從 ARC 總覽追蹤開始。
在 ChromeOS 瀏覽器中前往 chrome://arc-overview-tracing,即可存取這項工具。
後續步驟
因此您可能發現了一些瓶頸,但不確定該如何解決。或者你已找出並解決問題,但不確定接下來該怎麼做。我們在下方整理了一般 Android 和引擎專屬的提示和資源,供您參考。
通則
Android 開發人員入口網站提供許多提升應用程式效能的實用訣竅。當中包含載入時間考量、如何運用多執行緒、處理輸入延遲等資訊。
請記得盡早進行剖析,並經常剖析,尤其是以效能較低的機器為目標,或是要突破高階架構的界線時。追蹤應用程式的效能統計資料,有助於找出導致影格速率下降的變更,以及協助您維持流暢體驗的變更。
Unity 引擎
除了通用的 Android 說明文件,Unity 也提供 ChromeOS 專屬說明文件,協助您使用該引擎建立效能優異的 ChromeOS 應用程式。請參閱他們的 ChromeOS 文件,瞭解入門、輸入、偵錯和建構,包括如何建立 x86 版本。如要瞭解成效相關內容,請參閱瞭解最佳化,以及成效和最佳化課程。
建議您參閱 ARM 的分析及最佳化 Unity 遊戲指南,瞭解相關最佳做法。本教學課程將逐步說明如何使用 Streamline 工具 (ARM Mobile Studio 的其中一項功能),剖析 Unity 中的範例遊戲。
Unreal 引擎
Unreal 撰寫了效能指南和提示與訣竅文件,教導您如何充分運用引擎提供的許多選項和設定。您可以在這裡找到詳細程度訣竅、如何充分運用光線、材質品質設定和著色器逐步指南,以及其他建議。
如需更多圖形最佳化資訊,請參閱 ARM 撰寫的指南,瞭解如何最佳化行動遊戲。如需一般最佳化提示和 Unreal 專屬的圖像考量,請參閱這篇文章。