ARPG手游性能分析报告:加载、GC、内存需重点关注
總體性能
?
(1)iOS設備的CPU性能普遍高于Android設備;
(2)Android設備上項目性能普遍偏低,CPU達標(超過33ms幀數比例<10%)比例僅為38.6%。
?
相較于MMORPG游戲,ARPG游戲的渲染和UI模塊比重明顯下降,自身邏輯代碼的開銷基本一致,加載模塊比重明顯上升。這是出于以下原因:
(1)相對于MMORPG來說,ARPG游戲的場景一般較小,UI界面相對簡單,因此,渲染模塊和UI模塊的壓力要小于MMORPG游戲;
(2)ARPG游戲重點突出打斗的豐富性和爽快感,所以ARPG游戲研發團隊會為角色創建非常復雜的動畫狀態機,并且為了保證游戲副本打斗的流暢性,研發團隊更傾向于在場景切換時將大量資源一次性載入,因此,ARPG游戲的自身邏輯代碼和加載模塊的壓力更高。
下面我們就來具體分析下這些主流模塊的開銷情況。
主流模塊性能
一、渲染模塊
嚴重程度:噩夢
Draw Call的主體使用范圍為32~166,峰值平均為209;
渲染三角面片的峰值集中在68.8K~268K,峰值平均為90.2K面。
UWA推薦:渲染三角面片峰值< 100K,目前達標比例: 55.2%。
?
不透明物體的渲染耗時平均為2.9ms,半透明物體的渲染耗時平均為4.6ms。
54.4%的項目使用了相機后處理特效,其具體分布如下:
?
(1)ARPG游戲無論是在Draw Call上還是在渲染的三角形面片數量上,均小于MMO游戲;
(2)但ARPG游戲的場景渲染三角形面片數量依然較高,僅55.2%的游戲能夠將場景的渲染三角形面片數控制在10w以下。
二、加載模塊
嚴重程度:地獄
?
(1)GC觸發頻率很高,是造成卡頓的主要原因之一;
(2)90%以上的游戲團隊需要對GC的調用進行進一步規劃,對代碼的堆內存分配進行大力優化。
?
(1)Instantiate實例化操作平均每次調用的CPU耗時主要分布在: 2.6~44.1 ms,均值為9.4ms,每1萬幀總調用次數主要分布在: 139~1941 次;
(2)Instantiate的頻繁實例化是大多數研發團隊非常容易忽視的問題。
?
Log輸出操作平均每次調用的CPU耗時主要分布在: 3.0~33.1 ms,均值為9.8ms。
?
(1)Shader解析操作平均每次調用的CPU耗時主要分布在: 4.3~146.8 ms,均值為25.1ms;
(2)Shader解析時間較高,且大多數情況是相同Shader的重復開銷,值得研發團隊密切關注。
三、UI模塊
嚴重程度:地獄
?
(1) 使用NGUI作為UI解決方案的項目占據了相當高的比例,NGUI目前仍然是研發團隊對于UI系統使用的主要解決方案;
(2) UI模塊的性能開銷很高,QQ賬號出售平臺將近70%的研發團隊都面臨較為嚴重的性能問題;
(3) 與MMORPG不同的是,ARPG游戲UI模塊的性能壓力相對較小,優化難度相對較低。
四、粒子系統
嚴重程度:普通
?
五、動畫模塊
嚴重程度:普通
?
經過統計,目前僅使用Mecanim動畫系統的ARPG游戲項目占比為45.3%,僅使用Unity3.x老版本動畫系統的ARPG游戲項目占比為17.7%,兩種系統混合使用的項目占比為37.0%。
內存模塊
內存泄露幾乎是所有手游都難避開的問題,其在ARPG手游中出現的情況占比為34.9%。
總體內存
嚴重程度:地獄
?
總體堆內存
嚴重程度:地獄
?
紋理資源
嚴重程度:地獄
?
網格資源
嚴重程度:普通
?
音頻資源
嚴重程度:普通
?
Render Texture資源
嚴重程度:噩夢
?
字體資源
嚴重程度:普通
?
Shader資源
嚴重程度:普通
?
動畫片段資源
嚴重程度:普通
?
希望以上數據能給大家的開發提供幫助。之后侑虎科技將不斷與大家分享其他類型的數據,如ACT,SLG等
總結
以上是生活随笔為你收集整理的ARPG手游性能分析报告:加载、GC、内存需重点关注的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用行为树的方式思考:任务系统设计
- 下一篇: 游戏服务端的逻辑分服与物理分服