Unity優化翻譯官方文件(八) ------ Memory Profiler
在記憶體分析器中可以使用兩種模式檢查應用程式的記憶體使用情況。這是在下面板左上角的下拉選單中選擇的。
1.Simple
這個簡單的檢視顯示了一個簡單的概述,在每個幀的基礎上,在整個Unity中如何使用記憶體。
為了避免頻繁地詢問作業系統,Unity保留記憶體池以供分配。這是作為一個保留的數量顯示的,以及使用了多少。
這方面的內容包括:
- Unity 在本機聯合程式碼中分配的記憶體數量
- Mono 託管程式碼所使用的堆大小和堆大小。這個記憶體是垃圾收集的
- GfxDriver 驅動程式在紋理上使用的估計記憶體數量,呈現目標、著色器和網格資料。
- FMOD 音訊驅動程式的記憶體使用情況
- Profiler 用於分析器資料的記憶體
所顯示的數字與工作管理員或活動監視器不一樣,因為有些用法是由記憶體分析器不跟蹤的。這包括一些驅動程式使用的記憶體,以及用於可執行程式碼的記憶體。
記憶體統計資訊顯示在一些最常見的asset/object型別中。這些統計資料包括計數和使用的記憶體(主要和視訊記憶體):
- Textures
- Meshes
- Materials
- Animations
- Audio
- Object Count
物件計數是創造的物件的總數。如果這個數字隨著時間的推移而上升,那麼你的遊戲就是在創造一些從未被摧毀的物件。
2.Detailed
詳細的檢視允許您獲取當前狀態的快照。使用Take Sample按鈕來捕獲詳細的記憶體使用情況。獲取這些資料需要一些時間,因此不應該期望詳細的檢視能夠提供實時的細節。在取樣之後,分析器視窗將使用樹形檢視進行更新,您可以在其中探索記憶體使用情況。
這將顯示單個資產和GameObject記憶體使用情況。它還顯示了一個遊戲物件在記憶體中的原因。常見的原因包括:
- Assets:從使用者或本機程式碼引用的資產
- Built-in Resources:統一編輯器資源或統一預設資源
- Not Saved:標記為DontSave的GameObjects
- Scene Memory: GameObject和附加元件
- Other: 在上面的類別中沒有標記的配子
點選列表中的GameObject,在專案或場景檢視中檢視它。
當在編輯器中進行剖析時,記憶體分析器顯示的所有數字都指示編輯器中的記憶體使用情況。這些通常比在播放器中執行時要大,因為執行Unity編輯器會增加額外的記憶體。要想獲得更精確的數字和記憶體使用,請使用剖析器連線來連線到執行的播放器。這將在目標裝置上提供實際的使用。
系統下的記憶體報告。executableanddll是隻讀儲存器,所以作業系統可能會根據需要丟棄這些頁面,然後從檔案系統重新載入它們。這會產生較低的記憶體使用,並且通常不會直接導致作業系統決定殺死應用程式。其中一些頁面也可能與使用相同框架的其他應用程式共享。