• 游戏
  • 工业
  • 资源
  • 社区
  • 学习
  • 支持
开发
Unity 引擎
为任何平台构建2D和3D游戏
下载计划和定价
商业化
应用内购买(IAP)
发现并管理各商店的IAP
聚合平台
最大化收入并优化变现
Ad Quality
保护您应用的用户体验
Tapjoy
建立长期用户忠诚度
所有变现产品
用户获取
用户获取
被发现并获取移动用户
Unity向量AI
将玩家与合适的游戏连接
Aura设备内广告
在用户高峰参与时触达用户
所有增长产品
使用案例
3D协作
实时构建和审查3D项目
沉浸式培训
在沉浸式环境中培训
客户体验
创建互动3D体验
所有行业解决方案
行业
制造业
实现运营卓越
零售
将店内体验转化为在线体验
汽车
提升创新和车内体验
所有行业
技术库
文档
官方用户手册和API参考
开发者工具
发布版本和问题跟踪器
路线图
查看即将推出的功能
术语表
技术术语库
洞察
案例分析
真实成功案例
最佳实践指南
专家提示和技巧
所有资源
新增功能
博客
更新、信息和技术提示
新闻
新闻、故事和新闻中心
社区中心
讨论
讨论、解决问题和连接
事件
全球和本地活动
社区故事
Made with Unity
展示Unity创作者
直播活动
加入开发者、创作者和内部人员
Unity奖项
庆祝全球的Unity创作者
适合每个级别
Unity Learn
免费掌握Unity技能
专业培训
通过Unity培训师提升您的团队
Unity新手
准备开始
开始您的学习
Unity基础路径
你是Unity 新手?开始您的旅程
使用指南
可操作的技巧和最佳实践
教育
对于学生
开启您的职业生涯
对于教育者
增强您的教学
教育资助许可证
将Unity的力量带入您的机构
认证
证明您的Unity精通
支持选项
获取帮助
帮助您在Unity中取得成功
成功计划
通过专家支持更快实现目标
常见问题解答
常见问题解答
联系我们
与我们的团队联系
计划和定价
语言
  • English
  • Deutsch
  • 日本語
  • Français
  • Português
  • 中文
  • Español
  • Русский
  • 한국어
社交
货币
采购
  • 产品
  • Unity Ads
  • 订阅
  • Unity Asset Store
  • 经销商
教育
  • 学生
  • 教师
  • 机构
  • 认证
  • 学习
  • 技能发展计划
下载
  • Unity Hub
  • 下载存档
  • Beta 版测试
Unity Labs
  • 实验室
  • 作品
资源
  • 学习平台
  • 社区
  • 文档
  • Unity QA
  • 常见问题解答
  • 服务状态
  • 案例分析
  • Made with Unity
Unity
  • 我们公司
  • 新闻简报
  • 博客
  • 事件
  • 工作机会
  • 帮助
  • 新闻
  • 合作伙伴
  • 投资人
  • 附属机构
  • 安防
  • 社会影响力
  • 包容性与多样性
  • 联系我们
版权所有 © 2025 Unity Technologies
  • 法律
  • 隐私政策
  • Cookie
  • 不要出售或分享我的个人信息

“Unity”、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其分支机构在美国及其他地区的商标或注册商标(单击此处获取更多信息)。其他名称或品牌是其各自所有者的商标。

Hero background image

如何使用 Profile Analyzer 优化您的游戏

为方便起见,此网页已进行机器翻译。我们无法保证翻译内容的准确性或可靠性。如果您对翻译内容的准确性有疑问,请参阅此网页的官方英文版本。
请点击这里。

本页面提供了将 Profile Analyzer 添加到您的 Unity 和本地平台分析工具中的深入介绍。

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

Profile Analyzer 演练

This content is hosted by a third party provider that does not allow video views without acceptance of Targeting Cookies. Please set your cookie preferences for Targeting Cookies to yes if you wish to view videos from these providers.

Profile Analyzer 演练

您想知道在哪里提高性能吗?您需要比较更改前后的性能吗?您是否知道 Unity 版本更新对游戏的影响?Profile Analyzer 将帮助您回答这些问题。虽然标准的 Unity Profiler 允许您进行单帧分析,但 Profile Analyzer 可以聚合和可视化从一组 Unity Profiler 帧捕获的分析标记数据。

  • 概述
  • 开始使用
  • Profile Analyzer 视图
  • 标记摘要窗格
  • 单视图
  • 比较视图
  • 比较性能变化
  • Profile Analyzer 快速提示

Profile Analyzer 概述

虽然标准的 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成本是什么?

- 每个标记的平均/中位数/总成本是多少?

回答这些基本问题可以帮助您找到最大的性能问题并优先优化。

性能分析器提供的统计信息和详细信息使您能够深入了解在多个帧上运行代码的性能特征,甚至与之前的分析捕获会话进行比较。

Unity Profiler 的一个很好的伴侣,Profile Analyzer 聚合并比较在分析会话中捕获的多个帧。这是单视图的截图。
Unity Profiler 的一个很好的伴侣,Profile Analyzer 聚合并比较在分析会话中捕获的多个帧。这是单视图的截图。

Profile Analyzer 视图

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

您可以在面板顶部选择不同的模式。
您可以在面板顶部选择不同的模式。

标记摘要窗格

使用 帧控制面板 选择一个或一系列帧。当选择时,标记详细信息 窗格更新以显示所选内容的聚合数据,并包含有用统计信息的可排序标记列表。

标记摘要窗格 显示所选标记的深入信息。列表中的每个标记都是该标记在所选帧范围内所有过滤线程的所有实例的聚合。

标记摘要面板包含关于在标记详细信息面板中选择的每个标记聚合的详细信息。
标记摘要面板包含关于在标记详细信息面板中选择的每个标记聚合的详细信息。

单视图

单一 视图 是 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 标记比较面板更新以显示差异。

比较数据的另一个有用技巧是按帧持续时间对两个图表进行排序 (右键单击 > 按帧持续时间排序),然后在每个集合中选择一个范围,专注于或排除异常帧(持续时间不成比例的长或短的帧)。

这使您能够将最典型的帧与最极端的帧进行比较。然后在所选范围内的标记比较表中显示数据,使分析导致性能峰值或不一致的因素变得更容易。

比较捕获中的中位数和最长帧
比较捕获中的中位数和最长帧

Profile Analyzer 快速提示

- 通过选择 深度级别 为 4,深入用户脚本(忽略 Unity 引擎 API 级别)。在过滤到此级别并查看 Unity Profiler 的 时间线模式 后,您可以关联调用堆栈深度以在此处进行选择 - Monobehaviour 脚本将在第四层中以蓝色显示。这是一种快速查看您的特定逻辑和游戏脚本是否单独造成负担而没有其他“噪音”的方法。

- 以相同的方式过滤 Unity 引擎的其他区域的数据,例如动画师或引擎物理。

- 在 帧摘要 部分的右侧,您会找到突出显示的方法性能范围直方图。将鼠标悬停在 最大帧 数字上(找到最大时序的确切帧)以获取可单击的链接,以在 Unity Profiler 中查看帧选择。使用此视图分析可能导致高最大帧时间的其他因素。

- 如果您有宽屏或两个可用的显示器,打开 Profile Analyzer 和 Unity Profiler 并排显示可能会很有用。此设置使您能够在 Profile Analyzer 中双击帧,以自动选择 Unity Profiler 中的相同帧,从那里您可以使用时间线或层次视图进一步调查。

了解更多关于 Profiler Analyzer 的资源:

- Profiler Analyzer 使用指南和教程

- 使用 Unity 的 Profiler Analyzer 进行 CPU 性能分析

- 性能分析简介

Unity 技术电子书
更多 Unity 6 的技巧

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

更多最佳实践