unity在ios平台下記憶體的優化?

時間 2021-06-02 17:41:10

1樓:Jare Guo

一方面是避免記憶體洩漏,另一方面是減少記憶體分配。

避免記憶體洩漏,需要細心的去進行黑盒白盒檢查,一般都是設計上的不合理造成的。同時可以善用 Destroy() 方法,強制釋放非託管記憶體。最好弄清楚 Unity 的資源管理機制,這方面網上教程很多,我就不做搬運工了。

減少記憶體分配,並不是說任何時候都不分配。在關卡進行時要將記憶體分配儘量減少,以降低 GC 的頻率。可以用 Profiler 找出是所有分配了記憶體的地方,再根據經驗判斷是否要進行優化。

我以前粗略的整理過一些會產生 GC 的操作,可供參考:

生成乙個新的委託,例如將方法做為引數傳入

對 List 進行 foreach

用列舉做 Key 進行字典查詢(可能是預設比較器 GetHashCode 時裝箱引起的,提供自定義的比較器應該能解決)

訪問 animation 等元件

獲取 SkinedMeshRenderer.bones 或 Mesh.uvs 之類的屬性

yield return 0 (建議全部替換為 yield return null)

呼叫 GetComponentInChildren(建議自己實現乙個無GC版本)

為什麼Unity在CPU 記憶體 磁碟 網路這些占用都不高的情況下play還會卡住?

金曉宇 我工作中碰到的主要是由於解除安裝domain造成的。unity使用了兩個domain,乙個root domain,乙個child domain。通常執行都是在child domain上。乙個domain載入的assembly是不允許單獨解除安裝的,所以要解除安裝assembly只能解除安裝d...

Windows平台下的開發真的沒落了麼?

Bill Cheng WINDOWS平台如果說個人軟體開發的話,不太好賺錢,廣告合作啥的又會被各種罵,還會被懷疑加了木馬啥的,而且WINDOWS平台存在這麼久,使用量這麼大,很多態別軟體都是存在不同版本的了,所以做開發很有可能面臨重複開發的問題 企業開發的話,現在的趨勢是往WEB方向轉,這幾年金融軟...

Windows 平台下有什麼小型的單機遊戲可以推薦的?

劇情向 囧魂對不起,我是NPC Elona 伊洛納 洞窟物語 沙盒類 Starbound 星界邊境 泰拉瑞亞 崩潰大陸 我的世界 圍攻反應操作類 多羅貓版馬里奧 Down wall 下井大戰 泰坦之魂 解謎類 FEZ 伊洛納 Elona,角色扮演類,免費,奇幻,較多日本元素,有點惡搞。內容豐富,玩法...