大多数浏览器和
Developer App 均支持流媒体播放。
-
探索 Metal 性能 HUD
了解旨在帮助您实时分析图形性能的全新平视显示面板。Metal 性能 HUD 会显示重要图形统计信息,可用于监控、记录和识别难以察觉的性能问题。
资源
相关视频
Tech Talks
-
下载
大家好 我是 Nat Brown 在 Apple 负责管理一支 从事游戏技术研究的工程团队 今天 我将向你介绍 平视显示屏 用于在 App 和游戏中 查看和收集 重要实时图形统计信息 我们来看看 Metal 性能 HUD 启用后 它会在 App 的右上角 显示为一个叠层 目的是帮助你和测试者 轻松查明潜在的性能问题 并且记录一些基本信息 供以后分析 HUD 是对现有 调试和性能分析工具 的一个补充 而不是取代它们 只需要截屏和日志 它就可以帮助你 从质量保障团队 和顾客那里 获取有用的信息 从而帮助你更快地 重现、分析和修复 难以重现的性能问题 和图形瑕疵 我们来看看HUD 可以 显示和收集哪些数据 HUD 的顶层显示 GPU 和显示屏 正在使用的设备 目标分辨率 以及显示屏的缩放状态 等有关信息 HUD 会显示你是位于 显示屏的直接路径 还是复合路径上 直接路径缓冲最少 并且从提供可绘制对象 到它显示在屏幕上 中间的刷新间隔次数最少 如果是复合路径 由于系统 UI 元素 或你自己的其他层 与屏幕发生重叠 可能会多一些缓冲 和显示延迟 你也可以看到 所用物理显示屏 的最大刷新率 对于可变刷新率显示屏 你还可以看到 显示屏的最小刷新率 这样你就能了解 可用的刷新率范围 接着 实时数据的第一列 显示以赫兹为单位的 即时帧速率 或称为帧率 然后是 pretime 即两次显示之间的时间 也称为帧时间或 帧间隔 单位为毫秒 最后 在帧间隔内 完成的 GPU 工作量 也以毫秒为单位进行计量 第二列进一步显示有关 最后 1.5 秒内 帧速率、帧间隔和 GPU 帧用时的信息 当该值较小 且严重偏离平均值时 HUD 将以红色高亮显示 HUD 中最后一列的数字数据 显示最后 1.5 秒内的 最大即时帧速率 最后 1.5 秒内的 最大单帧时间 以及在帧间隔的 最后 1.5 秒内的 最高 GPU 成本 相比平均值 异常高的帧间隔 和 GPU 时间 在这里也会以红色高亮显示 HUD 底部的 最后一部分 显示进程和 GPU 内存消耗信息 帮助你随时间推移 查明潜在的泄露 同时还提供了显示间隔 与 GPU 用时的 双线图 这些信息旨在 帮助你和测试者 查明可能会被忽略掉的 瞬时丢帧 并借助更先进的 Xcode 和 Instruments 工具 帮助你分离出 更深层的测试 调试和性能调整 那么 如何开启 Metal 性能 HUD 呢 如果知道 有多种不同的方式 来实现上述目的 你可能会感到惊喜 因为我们知道 开发者希望 有很多的方式 来与这类数据收集工作 交互并实现自动化 首先是在你面向 iOS macOS 或 tvOS 开发时 直接从 Xcode 14 进行 在“Diagnostics”标签下的 “Run”方案中 你会看到通过选取 “Show Graphics Overview” 开启 HUD 的选项 以及通过选取 “Log Graphics Overview” 启用向系统日志 记录数据的选项 在 iOS 和 tvOS 上 如果你已经将设备连接到 Xcode 并且出于开发目的将它启用 那么你可以使用 “Developer Settings” 开启 HUD 和记录功能 只需前往 “Settings”>“Developer Settings” 向下滚动 启用 HUD 并选择启用记录功能 在 iOS 和 tvOS 上 HUD 将仅为你自己的 App 显示和执行记录 也就是你通过 Xcode 或使用 TestFlight 安装的 App 在 macOS 上 你可以通过环境变量 在 Xcode 之外启用 HUD 请将 MTL_HUD_ENABLED 环境变量设为 一个显示 HUD 的值 并将 MTL_HUD_LOGGING_ENABLED 环境变量设为 一个触发记录功能的值 还有一个你可能会 发现有用的选项 那就是使用 App 的 用户默认值 在 macOS iOS 和 tvOS 上 你可以在标准用户默认值中 将 MetalForceHudEnabled 键 设为 true 针对 App 的后续启动 HUD 将会进行显示和记录 在 macOS 上 你可以设置一个全局值 让 HUD 为所有基于 Metal 的 App 显示该值 最后 你可以 向 Info.plist 中 添加 MetalHUDEnabled 键 从而始终启用 HUD 启用 HUD 后 现在你可以使用 CAMetalLayer developerHUDProperties 词典来显示或隐藏 HUD 以及启用和停用记录功能 将 mode 键设为默认值 会显示 HUD 清除该键 则会隐藏 HUD 将 logging 键设为默认值 会启用记录功能 清除该键 则会停用记录功能 如果你想在内部构建版本中 为测试者提供一个 UI 切换开关 以显示或隐藏 HUD 你可以添加 Info.plist 键 并使用该 API 现在我们来看看 Metal 性能 HUD 记录哪些内容 Metal 性能 HUD 以大约每秒一次的频率 向系统日志中写入数据 用于汇总它所收集的数据 以便你能用自己的方式进行分析 只需启动控制台 App 并用字符串 metal-HUD 过滤输出 所生成的每一行都将 以字符串 metal-HUD 开头 接下来是 第一帧的帧编号 然后是预计的丢帧数 这里没有丢帧 再后面是进程的内存使用情况 这里是 56.05 MB 之后是每一帧的 显示间隔 和 GPU 时间 以毫秒为单位 你可能会发现 所有这些数据都非常有用 可用于离线分析或找出 与你所采集的游戏视频的关联性 从而让你更准确地把握 进一步调试和优化的重点 希望你喜欢今天这堂 有关 Metal 性能 HUD 的讲座 使用 HUD 可以 直观地了解游戏的性能 它会协助你查明 难以察觉的性能问题 并帮助你确定在哪里使用 诸如 Instruments 等 更先进的工具 HUD 在所有 Apple 平台上 都很容易启用 你也可以采集 它所记录的数据 用于自己的自定分析 真心希望 它能在优化游戏和图形 App 方面为你提供帮助 如有任何反馈 请务必发送到 feedbackassistant.apple.com 感谢你的参与
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。