減少記憶體用量

瞭解 Android 記憶體管理機制並設定好工具,用來評估遊戲的記憶體用量後,下一步就是主動減少及最佳化記憶體用量。遵守 Android 的嚴格限制,有助於避免系統關閉遊戲、縮短啟動時間,並確保遊戲在所有裝置上都能順暢執行。

本指南提供實用技巧,可縮減遊戲的記憶體用量,特別著重於資產層級最佳化、引擎專屬設定,以及記憶體管理最佳做法。

減少 Unity 中的記憶體用量

由於 Unity 的架構設計,一旦原生區塊分配器和受管理堆積擴充,引擎就會傾向保留這些記憶體頁面以供重複使用,即使資產發布後,也不會立即將這些頁面傳回作業系統 (OS)。具體來說,虛擬位址空間 (保留的記憶體) 會在程序存續期間保留,而實體記憶體 (RSS) 不會立即回收,直到發生數次垃圾收集 (GC) 和修剪週期為止。因此,即使實際用量下降,暫時的記憶體用量高峰仍可能導致常駐記憶體長期處於膨脹狀態。這種行為會增加低階裝置發生記憶體不足 (OOM) 當機的風險,並降低整體執行階段穩定性。

因此,您必須從三個核心支柱著手,根據這些引擎行為量身打造 Unity 記憶體最佳化作業:

  • 控制有效記憶體用量,避免記憶體用量在第一時間達到尖峰。
  • 管理紋理格式和著色器變體,確保不會例項化不必要的資產和原生資源。
  • 重構執行階段程式碼結構,以消除受管理堆積上的非必要配置,盡量減少 GC 頻率和堆積擴充。

詳情請參閱「Unity 記憶體最佳化」。