分析和调试工具
每个游戏创作者都知道流畅的性能对于创造身临其境的游戏体验至关重要 - 为了实现这一点,您需要对您的游戏进行配置。
了解 Unity 以及目标平台可用的分析和调试工具。
此处的信息摘自电子书《Unity 游戏分析终极指南》, 可免费下载。该电子书是由 Unity 内部和外部的游戏开发、分析和优化专家编写的。
同时使用 Unity 和原生工具,以获得最佳结果
分析就像侦探工作,揭开应用程序性能滞后的原因或代码分配过多内存的原因。当您在项目开发生命周期的早期进行规划时,可以从分析中获得最大的收益。这是一个持续的、主动的、反复的过程。通过尽早并经常地进行分析(而不是在即将发布游戏之前),您和您的团队可以了解并建立项目的“性能特征”。例如,如果性能急剧下降,您将能够轻松发现问题所在,并快速解决问题。
最准确的分析结果来自于在目标设备上运行和分析版本,以及使用特定于平台的工具深入研究每个目标平台的硬件特性。
Unity 附带了一系列功能强大的免费性能分析工具,可在编辑器中和硬件上分析和优化代码。还有几种为每个目标平台设计的出色的本机分析工具,例如 Arm、Apple、Sony 和 Microsoft 提供的工具。两者结合使用可以更全面地了解所有目标设备上的应用程序性能。
Unity 性能分析工具
Unity 的 分析工具 可在编辑器和 包管理器中使用。每个工具专门用于分析项目的各个部分:
- Unity Profiler 可帮助您衡量项目性能并确定哪些流程可能导致问题。分析器收集并显示数据,例如从音频和物理到渲染和动画等不同任务使用了多少 CPU 时间。它可以测量 Unity 编辑器和播放模式下的应用程序的性能,并连接到开发模式下运行应用程序的设备。使用这个基本工具开始分析。查看 本课程以开始分析 。
- 内存分析器 提供了对内存性能的深入分析。减少内存使用量将帮助您减少崩溃,减少加载时间,并使您的项目与旧设备兼容。内存分析器目前处于预览状态,但预计将在 Unity 2022 LTS 中得到验证。
- Profile Analyzer 聚合并可视化来自一组 Unity Profiler 帧的帧和标记数据,以帮助您检查它们在多帧中的行为。(这补充了 Unity Profiler 中已有的单帧分析。)它还允许您比较两个分析数据集,以确定您的更改如何影响应用程序的性能。
- 帧调试器可将正在运行的游戏的状态冻结到特定帧,然后查看用于渲染该帧的各个绘制调用。除了列出绘制调用之外,调试器还允许您逐个浏览它们,以便您可以看到场景是如何通过其图形元素构建的。
- Profiling Core 包 提供了用于向 Unity Profiler 捕获添加上下文信息的 API。
本机分析工具
Android / Arm
- Android工作室:最新的 Android Studio 包含一个新的 Android Profiler,它取代了以前的 Android Monitor 工具。使用它来收集有关 Android 设备硬件资源的实时数据。
- Arm Mobile Studio:这套工具可帮助您详细地分析和调试您的游戏,适用于运行 Arm 硬件的设备。
- Snapdragon分析器:仅适用于 Snapdragon 芯片组设备。分析 CPU、GPU、DSP、内存、电源、热量和网络数据,以帮助查找和修复性能瓶颈。
英特尔
- 英特尔 VTune:使用这套工具快速查找并修复英特尔平台上的性能瓶颈。仅适用于英特尔处理器。
- 英特尔 GPA 套件:一套以图形为中心的工具,可帮助您快速识别问题区域,从而提高游戏的性能。
Xbox / Windows
- 图像:PIX 是面向使用 DirectX 12 的 Windows 和 Xbox 游戏开发人员的性能调优和调试工具。它包括用于了解和分析 CPU 和 GPU 性能以及监控各种实时性能计数器的工具。有关利用 PIX 进行 Xbox 游戏开发的更多信息, 请注册 为 Xbox 开发人员。
个人电脑 / 通用
- AMD μProf:AMD uProf 是一种性能分析工具,用于了解和分析在 AMD 硬件上运行的应用程序的性能。
- NVIDIA NSight:该工具使开发人员能够使用 NVIDIA 最新的视觉计算硬件来构建、调试、分析和开发一流的尖端软件。
- 超光速:Superluminal 是一款高性能、高频率的分析器,支持在 Windows、Xbox One 和 PlayStation 上用 C++、Rust 和 .NET 编写的应用程序分析。但它是一种付费产品,必须获得许可才能使用。
PlayStation
- PlayStation 硬件可以使用 CPU 分析工具。如需了解更多详细信息,您需要成为一名 注册的 PlayStation® 开发者。
iOS
- Xcode Instruments 和 Xcode Frame Debugger:Instruments 是一个强大而灵活的性能分析和测试工具,是 Xcode 工具集的一部分。
WebGL
- Firefox 分析器:使用 Firefox Profiler 深入研究调用堆栈并查看 Unity WebGL 构建的火焰图(以及其它内容)。它还具有比较工具,可以并排查看分析捕获。
- Chrome DevTools 性能:另一个可用于分析 Unity WebGL 构建的 Web 浏览器工具。
GPU 调试和分析工具
虽然 Unity Frame Debugger 工具可以捕获并说明从 CPU 发送的绘制调用,但以下工具可以帮助您展示 GPU 在收到这些命令时执行的操作。
有些是特定于平台的并提供更紧密的平台集成。查看与感兴趣的平台相关的工具:
- Arm图形分析仪:Arm Mobile Studio 软件套件的一部分
- RenderDoc:适用于桌面和移动平台的 GPU 调试器
- 英特尔 GPA:基于 Intel 的平台的图形分析
- Apple 帧捕获调试工具:Apple 平台的 GPU 调试
- Visual Studio图形诊断概述对于基于 DirectX 的平台(例如 Windows 或 Xbox),请选择此项和/或 PIX
- NVIDIA Nsight 框架调试器:适用于 NVIDIA GPU 的基于 OpenGL 的帧调试器
- AMD Radeon 开发工具套件:适用于 AMD GPU 的 GPU 分析器
- Xcode 框架调试器:对于 iOS 和 macOS