一 大概標準
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...