UWA總體性能篇_數值標準(二)

CPU性能佔用中:

>33ms幀數佔比最好不超過10%

GC調用:

Unity引擎開發的項目中,其內存分配主要由三部分組成:程序代碼、託管堆(Managed Heap)以及本機堆(Native Heap)。其中,對於目前絕大多數基於Unity引擎開發的項目而言,其託管堆是由Mono分配和管理的。“託管” 的本意是Mono可以自動地改變堆的大小來適應你所需要的內存,並且適時地調用垃圾回收(Garbage Collection)操作來釋放已經不需要的內存。

需要注意的是,每次GC調用均會造成一定程度上的卡頓,從而降低項目運行的流暢度。如果開發人員的邏輯代碼分配堆內存過大過快的話,則GC調用的次數也會隨之增加。

調用頻率” 爲項目運行時平均多少幀會觸發一次GC操作。該值越低,則表示GC到來的越快,即項目越不流暢

渲染模塊性能:

對於 Mobile 低端移動設備來說,建議 Draw Call 數量的主要範圍在 [0,200] 區間內,Triangle 數量保持在 10萬 以下,可見蒙皮網格數量保持在 50 以下。

物理模塊性能:

Contacts 數量爲碰撞對(Contact Pair)數量。所謂“碰撞對”,是指當前空間中發生碰撞的物體之間的接觸點,每個 “碰撞對” 均連接兩個相互產生碰撞的物體。一般來說,Contacts 數量越大,則表明碰撞物體的數量越多,即物理系統的CPU開銷越大。

建議 Rigidibody數量 控制在 50 以下,碰撞體數量(靜態碰撞體和動態碰撞體) 控制在 100 以下。

粒子系統渲染耗時:

拼合粒子系統是指,引擎會將若干個材質相同且深度相同的粒子系統在渲染前進行合批(Batch),從而通過一個Draw Call來對其粒子系統進行渲染,進而降低粒子系統的渲染開銷

加載模塊性能:

Resources.UnloadUnusedAssets 是Unity引擎的主要資源卸載函數之一,也是Loading.UpdatePreloading函數中的主要耗時部分。它的主要CPU開銷在於定位哪些資源是當前項目中所不再使用的,然後將其Unload去除。項目越複雜,GameObject和資源數量越多,該函數的性能開銷越大。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章