
本页面提供了将 Profile Analyzer 添加到您的 Unity 和本地平台分析工具中的深入介绍。
Profile Analyzer 是电子书 终极 Unity 游戏分析指南 (Unity 6 版) 中涵盖的众多功能之一。本指南汇集了来自外部和内部 Unity 专家的高级知识和建议,介绍如何在 Unity 中分析应用程序、管理其内存以及从头到尾优化其功耗。

您想知道在哪里提高性能吗?您需要比较更改前后的性能吗?您是否知道 Unity 版本更新对游戏的影响?Profile Analyzer 将帮助您回答这些问题。虽然标准的 Unity Profiler 允许您进行单帧分析,但 Profile Analyzer 可以聚合和可视化从一组 Unity Profiler 帧捕获的分析标记数据。
虽然标准的 Unity Profiler 允许对单个帧进行详细分析,但 Profile Analyzer 聚合并可视化从多个 Unity Profiler 帧捕获的标记数据,提供更广泛的“全局视图”。这使得比较和分析多个帧或不同分析会话中的性能数据变得容易。
要开始使用 Profile Analyzer:
1.通过 窗口 > 包管理 > 包管理器 安装 Profile Analyze 包。
2.前往 Unity 注册表,浏览或使用搜索过滤器查找 Profile Analyzer 包。
Profile Analyzer 从 Unity Profiler 捕获的一组帧中提取数据,并对其进行统计分析。它显示的数据提供了每个功能的有用性能时间信息,例如最小值、最大值、平均值和中位数时间。
由于性能分析器非常适合对数据集进行比较,因此在游戏开发过程中考虑使用它,以便清晰了解性能和优化挑战。您还可以使用它进行游戏场景的A/B测试,以比较性能差异,比较代码重构和优化前后的分析数据、新功能,甚至Unity版本升级。一个有用的提示是保存分析会话,以便在使用性能分析器时比较优化工作前后的性能。
性能分析器帮助您确定应集中精力的地方。它为您提供了一种并排比较两个Unity性能分析捕获的方法,并检查您更改的影响。
性能分析器补充了Unity Profiler中已经可用的单帧分析。它聚合并可视化来自一系列Unity Profiler帧的帧和标记数据,帮助您查看多个帧的高层次性能随时间变化的模式。
性能分析器对当前分析会话帧或之前保存的捕获中的多个帧进行CPU性能分析。该工具附带统计信息和可视化,帮助您快速解析存储在捕获中的信息。它的综合过滤功能还允许您深入到您感兴趣的部分。您可以用它比较两个数据集,或者可以导出原始数据以便与其他工具进行分析。
您可以通过窗口 > 包管理器安装性能分析器。

首先,您需要使用分析器捕获数据,然后填充性能分析器以进行分析。
使用聚合数据使您能够更全面地了解游戏中发生的事情,而不是一次查看一帧。例如,在300帧(10秒)游戏捕获或20秒加载序列中,您可能需要知道:
- 主线程和渲染线程上最大的CPU成本是什么?
- 每个标记的平均/中位数/总成本是多少?
回答这些基本问题可以帮助您找到最大的性能问题并优先优化。
性能分析器提供的统计信息和详细信息使您能够深入了解在多个帧上运行代码的性能特征,甚至与之前的分析捕获会话进行比较。

注意窗口顶部的 模式 选择。Profile Analyzer 有多种视图和方法来分析分析数据。使用不同的视图来选择、排序、查看和比较一组组的分析数据。



比较视图 对于分析性能变化特别有效,因为它允许您加载两个不同的数据集,然后以不同的颜色显示,以便进行清晰的并排比较。

使用以下步骤通过 Profile Analyzer 比较性能变化。您可以使用来自活动 Unity Profiler 捕获的 提取数据 选项或来自已保存会话的 加载数据 选项。加载时,文件必须为配置分析器的.pdata格式。对于Unity Profiler .data文件,首先在Profiler窗口中打开它们,然后在配置分析器中使用提取数据。建议您保存Profiler中的原始.data文件。
1.准备测试:选择游戏中一个一致的部分进行分析,以便进行有意义的基准比较。脚本化或可重复的手动游戏过程效果最佳,以减少影响性能的随机副作用。
2.捕获“之前”的数据:
- 打开配置分析器(窗口 > 分析 > 配置分析器)。
- 在Unity Profiler中,记录您选择的游戏玩法的分析会话,然后再进行任何优化。
- 在分析器的比较选项卡中,单击第一个提取数据按钮。这将加载来自Profiler的当前捕获,或者您可以保存会话。
3.优化并捕获“之后”的数据:
- 应用您的代码或性能改进。
- 清除Unity Profiler的先前数据,然后记录相同游戏玩法的新分析会话。
- 在配置分析器中,单击第二个提取数据按钮以加载此新会话。
4.分析差异:
- 标记比较窗格显示“之前”(左)和“之后”(右)捕获之间的标记时间差异。
- 用<或>标记的列表示哪个捕获在该指标上具有更大的值。
- 您可以使用标记列过滤器更改比较的指标。
有关每个标记比较列的更多详细信息,请参阅比较视图条目页面。
比较中位数和最长帧
在单个 Profiler 捕获中比较中位数和最长帧,以找出后者中发生的事情,而前者中没有出现,或者查看哪些操作所需时间超过平均水平。
打开 Profile Analyzer Compare 视图,并为左右两侧加载相同的数据集。您还可以在单视图中加载数据集,然后切换到比较视图。
右键单击顶部 帧控制 图表,然后选择 选择中位数帧。右键单击底部图表,然后选择 选择最长帧。
Profile Analyzer 标记比较面板更新以显示差异。
比较数据的另一个有用技巧是按帧持续时间对两个图表进行排序 (右键单击 > 按帧持续时间排序),然后在每个集合中选择一个范围,专注于或排除异常帧(持续时间不成比例的长或短的帧)。
这使您能够将最典型的帧与最极端的帧进行比较。然后在所选范围内的标记比较表中显示数据,使分析导致性能峰值或不一致的因素变得更容易。

- 通过选择 深度级别 为 4,深入用户脚本(忽略 Unity 引擎 API 级别)。在过滤到此级别并查看 Unity Profiler 的 时间线模式 后,您可以关联调用堆栈深度以在此处进行选择 - Monobehaviour 脚本将在第四层中以蓝色显示。这是一种快速查看您的特定逻辑和游戏脚本是否单独造成负担而没有其他“噪音”的方法。
- 以相同的方式过滤 Unity 引擎的其他区域的数据,例如动画师或引擎物理。
- 在 帧摘要 部分的右侧,您会找到突出显示的方法性能范围直方图。将鼠标悬停在 最大帧 数字上(找到最大时序的确切帧)以获取可单击的链接,以在 Unity Profiler 中查看帧选择。使用此视图分析可能导致高最大帧时间的其他因素。
- 如果您有宽屏或两个可用的显示器,打开 Profile Analyzer 和 Unity Profiler 并排显示可能会很有用。此设置使您能够在 Profile Analyzer 中双击帧,以自动选择 Unity Profiler 中的相同帧,从那里您可以使用时间线或层次视图进一步调查。
了解更多关于 Profiler Analyzer 的资源:
- 使用 Unity 的 Profiler Analyzer 进行 CPU 性能分析
- 性能分析简介

您可以在 Unity 最佳实践中心找到更多适合高级 Unity 开发者和创作者的最佳实践和技巧。从超过 30 个指南中选择,这些指南由行业专家、Unity 工程师和技术艺术家创建,将帮助您高效地使用 Unity 的工具和系统进行开发。