大多数浏览器和
Developer App 均支持流媒体播放。
-
用 Xcode Organizer 诊断性能问题
只需点击几下鼠标,即可分析从多版本 APP 中获取的电力消耗及性能数据集合。我们将会向你介绍 Xcode Organizer 的最新版本及其交互式界面,供开发者轻松对比不同版本的 APP 数据指标。探索磁盘写入诊断工具及滚动卡顿度量工具,并学习如何通过这些工具为用户提供更好的 APP 性能、降低电量消耗、以及为用户减少设备负担。 若希望进一步了解 Xcode Organizer 与提升 APP 电力节约与性能,请观看 WWDC19 的 “延长电池续航时间与改善电池性能”视频。关于卡顿问题,请详见“通过 XCTest 消除动画效果卡顿”。
资源
相关视频
WWDC22
WWDC21
WWDC20
-
下载
(你好 WWDC 2020) 你好 欢迎参加 WWDC
(用 Xcode Organizer 诊断性能问题) 大家好 我叫 Shefali 是 Apple 的一名性能工具工程师 今天 能向大家介绍 Xcode Organizer 让我很激动
你的 app 是我们软件体验的支柱 我们要继续合作 这一点前所未有地重要 我们要提高电池寿命和性能 让用户最大限度地利用他们的设备 你将年复一年地努力 为你的用户创建性能最好的 app 询问我们你还能如何改进 你应该优先考虑哪些领域
为了帮你确保你的 app 在客户设备上运行良好 我们致力于为你提供可操作的工具和数据 让你可以快速确定 你的 app 应该关注哪些方面 在 Xcode Organizer Window 里可以追踪 app 的聚合电池、性能和 IO 指标 今天 我非常激动地向大家介绍 今年的一些新增功能 我先来简要介绍一下 Xcode Organizer 并向你展示它在 Xcode 11 中的样子 然后我们将介绍今年添加的新功能 包括新增的一种指标和诊断报告 以及新的用户界面
最后 我们将在一个演示版本中 结合所有这些新功能 向你展示如何使用这个强大的工具 来追踪每一个版本 app 的 电池续航时间和性能影响 最后我们会做更深入一点的介绍
我们先来简要概述一下 Organizer
Xcode Organizer 是什么 以及要如何查看我的 app 的数据? 顾名思义 Xcode Organizer Window 是直接构建在 Xcode 中的 这意味着你所要做的就是导航到菜单栏 进入“Window” 然后点击“Organizer”启动 使用 Organizer 的好处在于 它完全不需要对你的 app 做任何更改 当用户使用你的 app 时 我们会从已授权的设备中 收集电池续航时间 和性能数据 然后 这些数据被聚集在我们的服务器上 并通过 Organizer 发回给你
如需了解更多 关于 Xcode Organizer 的信息 我建议你看看 2018 年的 《能源调试新特性》 和 2019 年的 《提升电池续航时间和性能》讲座 去年 我们通过 Organizer 提供了各种 app 使用指标的数据 从那时起 我们就很高兴地看到 你使用指标和诊断报告 来监测 app 的性能 并进行了一些非常精彩的错误修复
来看看今年添加到 Organizer 的新数据
今年 我们在指标和诊断方面 提供了更多数据
我们为 Scrolling 添加了一个新的指标类别 我称之为“hitches” 详细介绍之前 先来看看我和一些同事共同开发的 Meal Planner app 同时了解一下在用户眼中 何为障碍
请注意它缓慢、跳跃和抖动的滚动效果 下面是同一个 app 但是没有任何障碍 如我们所见 两种体验天差地别 这种平滑的滚动效果 即我们想使用滚动障碍指标帮你实现的
不过 滚动障碍是什么呢? 滚动障碍是用户在 app 中滚动时 渲染的帧没有在预期的时间 出现在屏幕上 这通常会导致掉帧 这可以被视为抖动的滚动
对于 Organizer 的滚动部分 我们取 hitch time 即这些帧额外显示在屏幕上的总时长 用它除以 scroll duration 即用户在 app 中滚动屏幕的总时长
得出 hitch rate 一个用来衡量 app 性能的重要指标 因为可以评估 用户感知到的阻塞程度 对于如何解释障碍率 有三个指标 第一个是障碍率小于 5 毫秒/秒 在这里 帧之间有相当大的时间间隔 用户很可能会感受到 我们之前在 Meal Planner app 中 看到的平滑滚动 在每秒 5 到 10 毫秒之间 每隔几秒钟就会掉一帧 当障碍率超过 10 毫秒/秒时 用户就会频繁地感觉到掉帧 从而导致糟糕的滚动体验
如需进一步了解关于障碍的信息 我建议你查看 我们今年为你准备的 《用 XCTests 消除动画障碍》的讲座
我们今年添加的第二项新数据 是磁盘写入诊断报告
去年 我们为你提供了这方面的指标 而今年 我们将为你提供更多上下文 帮你精确定位 app 遇到的任何问题
磁盘在 24 小时内写入超过 1 GB 数据时 将聚合写盘诊断日志
通过减少 app 的写入量 可以确保更好的性能 更长的电池续航时间 和良好的设备整体运行状况 我们来看一下这些报告的示例
在 Organizer 的左窗格中 当我们导航到“Reports”部分 并点击“Disk Writes”时 我们会看到这个 我们将在演示过程中展开更详细的讨论
截至目前 我们看到了一些出色的新数据 同时 在 Xcode 12 中 我们完全重做了界面 很高兴它终于和你见面了 新的交互式用户界面 让你点击一次 即可比较不同版本 app 的指标 我们来看看 Organizer 仔细看看所有这些新功能
假如我是名为“Meal Planner” 的 app 的开发者 此 app 允许用户将图片和食谱存在一起 以便计划一周的膳食
在 XCode 12 中 我打开 Organizer 时 新的交互式用户界面让我可以 并排比较两个版本 我现在可以点击任何旧版本的 app
在右边可以看到用户界面更新 反映了最新版本和所选版本之间的差异 另外还有一个子类别的详细分类 说明了 app 的电池使用情况 我们在这里可以看到 在最新版本中 摄像头和蓝牙的使用有所增加 我现在知道该去研究了 我还可以随时返回并选择任何旧版本 这很有用 因为它为版本比较提供了 很多新的可能性 让我可以控制自己正在查看的数据 作为开发者 我们喜欢看到 app 使用数据 但假如需要几天甚至几周 才能在 Organizer 中看到数据呢?
值得注意的是 去年我们设置了一个阈值 希望每个版本的 app 在用户设备中 有了一定的使用量之后 才会在 Xcode Organizer 中 显示 app 的直方图 今年 我们很高兴能更快地展示这些数据 让你对 app 的性能有一个初步的了解 在 Xcode 12 中 我们将使用阈值降到原来的五分之一 这意味着 如果你当前能够看到 app 数据 那你现在能更快地看到这些数据 如果 app 的使用低于旧的阈值 但高于新的阈值 那你会开始首次看到数据 我们非常高兴 越来越多的 app 开发者 现在可以使用 Organizer 来监控他们 app 的电池续航时间 和性能影响 请看这张电池使用图表 可以看到 1.0.1 版的 x 轴上有一个图标
此图标表示 app 的一个版本用量有限 与此图标相关联的 是关于该版本误差幅度的附加信息 在右边可以看到这个 这很重要 因为对于这些用量有限的版本 我们分析的数据点更少
越来越多的人更新 app 并使用新版本后 来自较小工作集的数据将趋于稳定 随着用量增加 误差幅度将会减少 最后版本用量够多 且错误范围够低时 就能在用户界面中忽略它 来看看如何将新报告 用作工作流程的一部分 单击左边的写盘指标
可以看到在 2.2 版中 写盘突然增加 来仔细看看我们在 Meal Planner 中 如何对这种回归进行分类 在确定写盘的峰值后 我们将导航到左侧的“Reports”部分
然后点击“Disk Writes”
看起来有几个不同的因素 导致了我们看到的增长 最上面的一个看起来和我们在 2.2 版中 添加的一个新功能有关 用户现在可以 将自定义的图片和食谱添加到膳食计划中 由于堆栈跟踪确切告诉了我们问题的签名 我们可以跳到代码的那一部分并开始调查
在签名下方 还可以看到给定签名的写盘 占写盘的百分比
对于一个特定的签名 右边的“Reports”部分 显示了按设备类型和操作系统分类的崩溃
而饼图下面的条形图则显示了 过去 14 天 app 收到报告数量的趋势 与能量报告类似 我们还在右侧的“Details”部分 按照每个签名提供了示例堆栈跟踪 和关于堆栈跟踪的附加信息
我可以使用所有这些信息来进行修复 这样 app 就不用写那么多东西了 然后将签名标记为已解决 我的同事就能处理 Organizer 捕获的 其他回归 用户用上了修复此问题的版本后 我们将返回指标 确认数据恢复到之前的状态
很高兴能在一个新交互式 Organizer 中 向你展示更多数据 也很高兴看到你如何使用 所有这些新特性来优化你的 app 如果你是使用 Organizer 的开发者 我鼓励你用新的交互式用户界面 去比较两个 app 版本的指标 使用障碍指标来检查 app 的 滚动性能
并且通过使用写盘报告和写盘指标 来深入了解 app 的写盘 十分期待你继续使用 Xcode Organizer 来优化 app 的电池续航时间和性能
感谢你们花时间听这个讲座 也希望其他的讲座能让你们受益
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。