你是否需要对比不同版本项目的性能区别?是否想了解某个资源或代码改动、优化工作、设置变更或Unity版本升级给项目带来的影响? 本文将介绍Unity Profile Analyzer工具(预览版)如何在这些方面为你提供帮助。
为何开发Profile Analyzer
Unity平台性能团队需要在所有Unity支持平台或Unity版本上,调查各种类型的性能问题。为此,我们需要大量使用原生平台工具和Unity Profiler性能分析器。
在某次调查中,我们发现很难找到最具代表性的数据帧以供深入研究。为此我们构建了一款工具,它可以聚集性能分析数据中多个帧,并帮助我们定位特定标记的帧,这就是Profile Analyzer,它可以帮助我们更可靠的推断项目行为的变化。
分析单个数据集
Profile Analyzer的单视图由Unity Profiler窗口的当前帧数集构成。它分析CPU数据并可视化帧、线程和标记的数量,包括这些数据的最小值、最大值、中位数、平均数和上下四分位数,并提供返回Profiler窗口的链接,以找到数据出现的帧。
帧数,线程和标记的时间分布情况也可以通过直方图和箱形图的形式呈现,可视化随时间变化的行为。
数据集对比
在Profile Analyzer单视图形成统计信息的基础上,我们可以加载二个不同的数据集到对比视图中,它们会以二个不同的颜色显示。
不同数据集的区别会可视化在有序表格中,我们也可以在直方图和箱形图看到分布情况的区别,二个数据集可以显示代码或数据变更,项目设置改动及Unity版本升级的前后变化情况。
如下图所示,Profile Analyzer的单视图和对比视图都提供了综合筛选系统,你可以根据标记、线程、帧数和栈深度限制分析结果。
筛选数据
我们可以通过使用Profile Analyzer的筛选功能减少数据集,通过匹配部分名称、运行线程、特定栈等级来限制使用的标记。
除了根据特定名称匹配来筛选,我们也可以选择根据名称排除某标记组,以去除与统计结果不相关或无法有效反映标记组视图的标记。我们也可以通过使用窗口顶部的帧控制来选择出一部分帧。
Profile Analyzer的对比视图会自动排列二个数据组深度数据,以便让顶层标记正确对齐。我们也可以使用Auto Right勾选框和Left与Right深度控制功能重写标记结果。尤其在对比不同版本Unity的数据集时,由于生成的标记会发生变化,该功能会非常实用。
工具分享
Profile Analyzer会继续在Unity内部使用,以监视关键系统的性能和优化效果。该工具近期用于Unity纹理加载优化的性能评估,该过程中大型纹理的生成会造成渲染线程停顿。