Unity記憶體優化

2021-07-10 07:36:44 字數 1108 閱讀 8125

一 大概標準

1. 紋理             40m

2. mono          30m

3. animation  20m

4. mesh          10m

6. font            10m

7. audio          5m

8. gfxdriver    25m

9. resourcemanager 視情況而定(跟 你resourcemanager裡放了多少檔案)

(該標準是我做 mmo 和 fps時的標準值 不同專案會有不同程度的降低)

記憶體安全線 android unity在170m左右 pss在260m  (1g記憶體手機上不會因為記憶體不足crash)

ios的在280m左右(均指峰值)

二 工具

1. unity profile

2. mono提供的記憶體檢視工具 heapshot 需要替換unity自帶的dll  檢視當前記憶體物件情況

3. 網易 emmagee效能評測工具 開源 可做自定義 加入當前場景名字

4. ios 工具不好用

5. 根據unity提供的api 自定義效能profile工具  帶來的損耗較小。 

三 注意點

1. 記憶體基本存在3種問題 1 記憶體洩露 2 資源冗餘 3 mono無效記憶體

一 記憶體洩露 主要是資源管理 注意assetbundle asset物件的解除安裝與快取。小心處理掛在donotdestroy的節點下面的東西。小心static變數持有資源問題。所有場景均有乙個空場景進入,空場景負責進行堆記憶體的清空。

保證每次進入空場景的記憶體是一樣的。

二 資源冗餘 保證資源不會被帶入多個場景,可勤看profiler即可。注意不要在記憶體中出現同乙份的多份複製。例如 紋理開啟了 read/write enable. 呼叫 material mesh屬性而不是 sharematerial sharemesh屬性。動畫進行分割。例如場景只需要idle動畫,則可以做乙個prefrab只有idle動畫,無需載入其他動畫。

三 mono無效記憶體 保證mono峰值不要太高。主要是配置檔案載入,序列化。

四 降低記憶體 紋理是最好的方式。 更改紋理格式,降低紋理尺寸。檢查是否有冗餘紋理。

unity記憶體優化準則

常見判斷準則 記憶體閾值關注 managedheap.usedsize建議不超過20m 記憶體閾值關注 總體mone建議不超過40m 記憶體閾值關注 reserved memory建議不超過150m 記憶體閾值關注 2d紋理建議不超過50m 記憶體閾值關注 mesh大小建議不超過20m 記憶體閾值關...

unity 記憶體方面優化

作者寫的很好,看了他的書收穫很大。以下內容摘自 既然要聊unity3d執行時候的記憶體優化,那我們自然首先要知道unity3d遊戲引擎是如何分配記憶體的。大概可以分成三大部分 unity3d內部的記憶體 mono的託管記憶體 若干我們自己引入的dll或者第三方dll所需要的記憶體。第3類不是我們關注...

unity記憶體管理與優化

1.建立時 無論是從全球資訊網。還是檔案或者儲存器,用assetbundle.load載入需要的資產,載入完成之後用assetbundle.unload 假 釋放assetbundle檔案本身映象,但不銷毀載入的資產物件。2.釋放時 例項用破壞釋放。在合適的地方使用resource.unloadun...