Unity 4 6 x記憶體優化紀要

2021-07-10 02:25:51 字數 808 閱讀 8767

懷疑有object有洩漏,沒有被gc的時候,可以嘗試在class中的ctor和dtor, 及各種clone函式中加入自己的計數,在合適地方列印出該class靜態count的數值,確定是否被釋放。

使用object

.findobjectsoftype

(typeof

(gameobject

))來檢查有多少gameobject沒釋放

使用如下函式來檢視本機堆和託管堆的記憶體資訊

unitytotalreservedmemory = (int)profiler.gettotalreservedmemory();

unitytotalallocatedmem = (int)profiler.gettotalallocatedmemory();

unityunusedreservedmemory = (int)profiler.gettotalunusedreservedmemory();

monoheapsize = (int)profiler.getmonoheapsize();

monousedheapsize = (int)profiler.getmonousedsize();

其中託管堆在ios上是無法列印的,但是可以使用下面函式來逼近

(int)system.gc.gettotalmemory(false);

在lua中,使用如下**來列印lua中的gc記憶體

local c = collectgarbage("count")

Unity記憶體優化

一 大概標準 1.紋理 40m 2.mono 30m 3.animation 20m 4.mesh 10m 6.font 10m 7.audio 5m 8.gfxdriver 25m 9.resourcemanager 視情況而定 跟 你resourcemanager裡放了多少檔案 該標準是我做 m...

unity記憶體優化準則

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

unity 記憶體方面優化

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