你又可以大幅提升项目性能啦!

你又可以大幅提升项目性能啦!

在之前的UWA性能检测与分析报告中,研发团队只能通过加载模块的整体耗时来查看该模块的性能瓶颈。在今天推出的新版本中,我们又前进了一大步:通过对资源管理进行定量分析,让大家看到每个资源的加载/卸载、每个GameObject的Instantiate/Destroy等具体耗时情况,从而让优化更显直观具象!下面让我们一起来了解这些新特性吧!


新功能特性详细说明

UWA本次新功能的特性主要为资源加载、GameObject Instantiate/Destroy、GameObject Active/Deactive、资源管理汇总四大功能模块,下面小编将一一为大家说明。

一、资源加载

重点分析项目通过Resources和AssetBundle的加载开销,说明如下:

1. AssetBundle资源加载
在AssetBundle加载页面中,用户可以看到每个具体资源在项目检测过程中的具体CPU耗时,同时我们在之前版本的基础上还明确了资源的加载母体AssetBundle信息,这样可以帮助研发团队更加方便地定位和优化。
请输入图片描述

2. Resource加载
支持用户在Resource加载页面中对耗时选项进行排序,其资源加载耗时的Top10即可一目了然。
请输入图片描述

特别说明:该新功能不仅可以让用户看到整体加载耗时和加载次数,同时还可以通过图表来显示具体每次加载的位置和耗时。如下图,资源文件cite_girl(图中右上角)是通过AssetBundle.Load来加载的,可以看到在项目检测过程中,该资源被频繁加载,且每次加载耗时主要集中在100~200ms之间。
请输入图片描述

下图中的SpeedRaceUI和UIscene_BJT是通过Resources.Load来加载的,可以看到在项目检测过程中,该资源被频繁加载,前者加载耗时主要集中在300ms左右,后者则主要集中在150ms左右。
请输入图片描述


二、GameObject Instantiate/Destroy

GameObject实例化和销毁耗时同样是研发团队非常希望掌握的一个关键点。在UWA今天更新的版本中,我们将会让研发团队明确任何一个GameObject在实例化和销毁时的CPU占用情况。大家不仅可以看到最为耗时的GameObject,同时还可以看到其每次触发的时间点。

下图中的YX_DCJM_02,在游戏过程中被频繁实例化,且每次耗时均将近100ms,对此,研发团队完全可以考虑将其缓存,以避免后续0.1s的开销。

请输入图片描述
请输入图片描述


三、GameObject Active/Deactive

GameObject Active/Deactive是研发团队非常容易忽视的,大多数团队认为状态的切换开销甚微,但正是由于这些“疏忽”导致了某些GameObject的Active/Deactive切换造成了大量的CPU耗时。

下图则为游戏检测过程中,shadow的Active/Deactive的操作由于大量次数的累积,都是属于一个较高的耗时。

请输入图片描述
请输入图片描述
请输入图片描述

通过这些功能中的数据,研发团队可以从以下几点进行针对性优化:

  • 针对加载频繁且耗时的资源,可以详细对其资源进行检测,查看是否有进一步优化的空间(比如纹理可检查其分辨率、格式等);
  • 当研发团队明确了加载或实例化的瓶颈后,可针对具体资源、GameObject进行缓存,从而降低其CPU耗时。

四、资源管理汇总

以UWA的优化经验来看,二八定律同样适用于项目的开发管理,即80%的性能问题集中在20%的资源中。为此,我们将需要注意的Top10的问题直接反馈给用户(新版本中的“资源管理汇总”界面),用户通过对这些重点对象的快速处理,能在短期时间内达到立竿见影的优化效果。目前主要包括:

(1)AssetBundle的加载次数Top10
请输入图片描述

(2)资源加载的次数和耗时Top10
请输入图片描述

(3)GameObject 实例化/销毁次数和耗时Top10
请输入图片描述
请输入图片描述

(4)GameObject Active/Deactive次数和耗时Top10
请输入图片描述
请输入图片描述


五、其他更新

1. 截图功能更新

在当前版本中,我们将项目的运行截图从原来的 5秒/张 提升为 1秒/张,从而反映更详细全面的项目运行情况,助您更犀利地洞察每一个性能瓶颈,捕捉任何可以优化的机会!
请输入图片描述

2. iOS SDK 更新
在当前版本中,我们大力完善了SDK的兼容,主要包括:

  • 增加了截图功能对Metal的支持,不再限制打包项目时所选择的Graphic API
  • 增加了对使用sLua和ToLua项目的支持
  • 增加了对使用sLua,ToLua和uLua的项目的集成检测功能,用户可以一键检测SDK的集成是否成功

关于UWA

由侑虎科技开发的游戏/VR应用性能优化平台,目前提供 1)性能检测与优化2)资源检测与分析 两大工具。同时,我们也会万象更新地为大家开发更省心的功能,希望通过它们可以减少开发者反复测试定位问题的时间,从而将更多的精力集中在项目开发和解决问题中,能为大家项目研发省下的任何一分一秒,都是UWA团队的骄傲。

官网:www.uwa4d.com(点击原文)
官方技术博客:blog.uwa4d.com
官方技术QQ群:465082844(非水群,仅限技术交流)

  • Ren 发表在 2017年03月21日 回复