转自https://weibo.com/p/1001603943936308719227?sudaref=passport.weibo.com
性能优化是项目开发中一个永恒的话题。用户的需求和项目的要求总在不停地增长,同屏人数、屏幕特效和场景复杂度永远在向着“榨干”硬件的趋势逼近。所以,无论硬件设备发展到何种程度、研发团队有多么丰富的经验积累,性能优化依旧是一个令人棘手却又难以规避的问题。
就目前的移动游戏或VR项目而言,CPU的性能开销主要可归结为两大类:引擎模块性能开销和自身代码性能开销。其中,引擎模块中又可细致划分为渲染模块、动画模块、物理模块、UI模块、粒子系统、加载模块和GC调用等等。正因如此,我们在UWA测评报告中,就这些模块进行了详细的性能分析,从而方便大家快速定位项目的性能瓶颈,并根据分析和建议对问题进行迅速排查和解决。
通过大量的性能测评数据,我们发现渲染模块、UI模块和加载模块往往占据了游戏CPU性能开销的Top3。
渲染模块可以说是任何项目中最为消耗CPU性能的引擎模块。几乎所有的游戏或VR项目都离不开场景、角色和特效的渲染。对于渲染模块的优化,主要从以下两个方面入手:
● 降低Draw Call
Draw Call是渲染模块优化方面的重中之重。一般来说,Draw Call越高,则渲染模块的CPU开销越大。究其原因,要从底层Driver和GPU的渲染流程讲起,限于篇幅我们不在这里做过多的介绍。有兴趣的朋友可以查看以下链接中的说明(//stackoverflow.com/questions/485385