今天我們?yōu)榇蠹規(guī)碛蓮V州詩悅研發(fā)的3D回合制策略手游《星辰奇緣》的測評報告分析。這是一款我們深度優(yōu)化的3D移動游戲,其在中低端設(shè)備上的性能表現(xiàn)非常優(yōu)異。在此,我們將對該款游戲的性能數(shù)據(jù)進行深度剖析,希望通過這篇文章可以讓大家對移動游戲的運行性能有更為深刻的認知,并對大家的項目研發(fā)有所幫助。 ◆◆ CPU性能 該游戲在CPU占用方面的性能非常不錯,下圖為該游戲在 紅米Note2 不停打怪時的性能開銷??梢钥闯?,在紅米Note2上運行的29075幀中,超過33ms的幀數(shù)占比為1.3%,超過50ms的幀數(shù)占比為0.5%。
1. 渲染模塊 該游戲在紅米Note2設(shè)備上運行時的渲染模塊CPU開銷如下圖所示。通過統(tǒng)計,半透明物體渲染的CPU消耗均值為 5.9 ms,主要集中在 3.1~9.9ms 范圍內(nèi)(5%~95%)。不透明物體渲染的CPU消耗均值為 2.0 ms,主要集中在 1.4~3.1ms范圍內(nèi)(5%~95%)。Draw Call峰值為 191,且主要集中在 91~155 范圍內(nèi)(5%~95%),該值處于合理范圍之內(nèi)。
粒子系統(tǒng)是目前大量項目中半透明渲染耗時較高的“罪魁禍首”。如果你的項目半透明渲染較高,一定要重點查一下粒子系統(tǒng)的渲染開銷。一般來說,建議將粒子系統(tǒng)的渲染開銷主體范圍(5%~95%)控制在0~3ms范圍內(nèi)。 2. 動畫模塊 該游戲運行時的動畫模塊CPU開銷如下圖所示,目前該項目使用的是Mecanim動畫系統(tǒng)。通過統(tǒng)計,Animator.Update總體的CPU占用均值為1.3 ms,主要集中在0.8~2.4ms范圍內(nèi)(5%~95%),該值處于合理范圍之內(nèi)(一般建議在3ms以下)。MeshSkinning.Update總體的CPU占用均值為0.8 ms,主要集中在0.4~1.3ms范圍內(nèi)(5%~95%),該值同樣處于合理范圍之內(nèi)(一般建議在3ms以下)。
重要提示:除對蒙皮網(wǎng)格進行控制外,UWA仍強烈建議大家盡可能開啟“Optimize GameObject”這一選項,它將進一步提升項目的動畫模塊效率。
該游戲在紅米Note2設(shè)備上運行時的UI模塊CPU開銷如下圖所示。該游戲的UI模塊效率經(jīng)優(yōu)化后已經(jīng)非常出色,經(jīng)過統(tǒng)計,UI模塊總體的CPU占用均值為1.0 ms,主要集中在0.2~3.4ms范圍內(nèi)(5%~95%),在29000幀+的測試時間內(nèi),累積堆內(nèi)存分配總值僅為1.3MB。 目前,大量項目的UI模塊CPU占用均很高。我們看到的UI模塊開銷,經(jīng)常是如下圖一般的高開銷、高占用。 對于UGUI的性能優(yōu)化,我們建議你時刻注意以下幾點: 1、盡可能將靜態(tài)UI元素和動態(tài)UI元素分開,存放于不同的Canvas下。同時,對于不同頻率的動態(tài)元素也建議存放于不同的Canvas中;
4. Shader加載 該游戲目前在運行過程中幾乎不存在任何Shader解析開銷。下圖為游戲優(yōu)化前后Shader加載的耗時對比(上圖為優(yōu)化前開銷,下圖為優(yōu)化后開銷)。不難看出,該游戲在優(yōu)化前存在較大量的Shader重復(fù)加載開銷,而在優(yōu)化后則僅在開始處加載一次,后續(xù)運行則再沒有Shader的加載耗時。對于Shader的加載性能分析及優(yōu)化方案,我們在剛剛推出的加載模塊之Shader資源,感興趣的可以進一步閱讀。 ◆◆ 內(nèi)存模塊 《星辰奇緣》在內(nèi)存上的表現(xiàn)同樣突出,如下圖所示。總內(nèi)存峰值為128MB,Mono堆內(nèi)存峰值為23.6MB,且內(nèi)存在游戲運行過程中表現(xiàn)平穩(wěn)。 1. Mono堆內(nèi)存 從上圖可知,該游戲的總體Mono堆內(nèi)存控制得很好,在29075幀中,Mono的堆內(nèi)存峰值僅為 23.6MB。該值屬于合理范圍之內(nèi)(<>。 該游戲Mono堆內(nèi)存分配之所以可以控制得如此之小,主要得益于項目的函數(shù)經(jīng)過了大量的檢測和深度的優(yōu)化,下圖則為當前游戲運行29000+幀的函數(shù)堆內(nèi)存分配情況。 2. 資源內(nèi)存 經(jīng)過統(tǒng)計,該游戲的紋理資源數(shù)量峰值為393個,內(nèi)存占用峰值18.9MB。在全部紋理資源中,ETC1格式紋理占有199個,RGBA16格式紋理有42個,RGBA32格式資源數(shù)共有61個,其余為RGBA16格式。 對于RGBA32、RGBA16和RGB24格式的紋理,我們建議在視覺效果可以保證的情況下,盡可能使用ETC1格式紋理進行替換,不僅可以達到更小的內(nèi)存占用,同時可以獲得更快的加載效率。對于紋理資源的加載效率,我們在之前的加載模塊性能文章(內(nèi)鏈)中進行了詳細的分析和闡述,建議大家進一步查看,進一步加深加載模塊的掌控能力。 3.其他資源的內(nèi)存占用情況 Mesh資源: AnimationClip資源:
以上則為《星辰奇緣》游戲在CPU性能和內(nèi)存管理方面的具體使用情況。優(yōu)秀的CPU性能、較低的內(nèi)存分配和合理的資源使用,足以說明該研發(fā)團隊具備非常深厚的技術(shù)功底和對于引擎相當優(yōu)秀的把控能力。 最后,非常感謝《星辰奇緣》研發(fā)團隊對 UWA 的認可和支持。感謝他們樂于將項目性能數(shù)據(jù)與大家一起分享,讓更多的研發(fā)團隊了解到一款性能優(yōu)秀的3D回合策略游戲在各個模塊上應(yīng)該做到怎樣的程度。同時,也希望更多的開發(fā)團隊可以與我們一起來分享他們的性能數(shù)據(jù),讓更多的游戲開發(fā)者受益! |
|
來自: 流波上的武 > 《u3d優(yōu)化》