【酷熊科技】工做積累 ----------- 內存優化之GC.MarkDependencies

內存優化之GC.MarkDependencies性能

 

如何避免 GC.MarkDependencies優化

這個將會形成必定的時間,而且佔用的時間還不小,spa

 

翻譯一個遇到一樣問題的翻譯

 

 1 你們好,
 2 
 3 我有一個巨大的性能問題,我試圖以某種方式解決... 
 4 有沒有人遇到過這個問題GC.MarkDependencies須要大量的CPU時間?(見所附截圖)
 5 
 6 它是如何發生的:在個人遊戲中,地圖(2D瓷磚地圖)在運行時產生的,由於玩家能夠選擇設置的地圖,他將探討。它們是使用協程生成的,以保持UI的響應(加載屏幕),但加載後,GC.MarkDependencies啓動它的工做,但須要很長時間才能完成,竊取寶貴的幀(在我最後的分析,它花了我65幀PC,一個i7-2670QM,在虛擬機內部運行)
 7 它隱藏在Loading.UpdatePreloading內部,而且自從我加載個人地​​圖時開始,我知道我必須改變這個加載...
 8 地圖加載/生成會產生一些垃圾,每一個地圖大約60kb(仍在工做),但我相信這不會致使上述問題... 
 9 
10 當我說'生成',個人意思是:建立材質,指定TileSet紋理到它,建立網格,以支持每一個瓷磚,而後UV映射它相應的所需平鋪地圖(請參閱https://bitbucket.org/Chaoseiro/x-unitmx)
11 
12 事情我仍然須要嘗試:
13 - 從預製件加載,而不是在運行時生成(我認爲這將是解決方案,但想聽到也面臨這個問題的人的想法)
14 - 使用Application.LoadLevelAdditiveAsync(我相信這將無助,由於GC.MarkDependencies觸發地圖加載後)
15 - 其餘我還不知道:)
16 
17 那麼,有沒有人面對過,解決了這個問題?
18 預製路線是可能的解決方案嗎?
19 
20 我能夠嘗試解釋更好或提供更多的信息,若是須要:)
21 
22 提早謝謝!

 

 

 

 

 

解決方法是:code

 

 

我找出緣由。刪除Resources.UnloadUnusedAssets。一些低端手機可能會致使GCC收集屢次,CPU次數的成本。您可使用Resources.UnloadAssets(「」); 手動。這個API不能致使GC。
相關文章
相關標籤/搜索