缓慢的应用程序会令用户感到沮丧,从而导致差评,或者客户向左滑动竞争。不幸的是,查看和解决性能问题可能是一项艰巨而耗时的工作。

大多数开发人员在 Android Studio 或 Xcode 等 IDE 中使用分析器来寻找瓶颈和自动化性能测试,以在开发过程中捕获代码中的性能回归。但是,在应用程序发布之前对其进行测试是不够的。

要发现最令人沮丧的性能问题,您需要探索用户设备上发生的情况。这意味着可以了解您的应用程序启动的速度、HTTP 请求的持续时间、慢速和冻结帧的数量、您的视图加载速度等等。使用 Sentry for Mobile,您现在可以轻松地实时监控 iOS 和 Android 应用程序的性能,而无需额外设置(或积累一堆测试设备)

1. Mobile Vitals

我们认为每个移动团队都应该跟踪四个指标来更好地了解他们的应用程序的性能:冷启动、热启动、慢帧和冻结帧。这四个指标作为 Sentry 性能监控的核心部分,为您提供了所需的详细信息,您不仅可以确定关键性能问题的优先级,还可以将问题追溯到根本原因以更快地解决它们

image.png

2. 测量应用程序启动

当用户点击您的应用程序图标时,它应该会快速启动。在 iOS 上,Apple 建议您的应用最多需要 400 毫秒来渲染第一帧。在 Android 上,当冷启动时间超过 5 秒或热启动时间超过 2 秒时,Google Play 控制台会向您发出警告

  • 冷启动:应用程序在重启或更新后首次启动。
  • 热启动:应用至少启动一次并且部分在内存中。

无论平台如何,您的应用程序快速启动以提供令人愉悦的用户体验至关重要。这就是为什么在 iOS、Mac Catalyst、tvOS 和 Android 上,我们会跟踪您的应用绘制第一帧所需的时间。我们获取此信息并为应用程序启动的不同阶段添加跨度。下面是一个来自 iOS 的例子:

image.png

在 Android 上,挂钩到应用程序启动的初始化阶段比较棘手,因此我们目前添加了一个从应用程序启动到第一个自动生成的 UI 事务的跨度。不过,此信息非常有用,可以帮助您延长应用启动的持续时间

3. Slow and Frozen Frames

无响应的 UI、动画故障或只是卡顿会惹恼用户并降低用户体验。跟踪这种不需要的体验的两个测量是慢帧和冻结帧。手机或平板电脑通常以每秒 60 帧 (fps) 的速度呈现。

帧速率也可以更高,尤其是随着 120 fps 显示器越来越流行。对于 60 fps,每帧有 16.67 毫秒的渲染时间。如果您的应用程序需要超过 16.67 毫秒的帧,则它是一个慢帧。

冻结帧是耗时超过 700 毫秒的 UI 帧。运行平稳的应用程序也不应该体验。这就是 SDK 将这两个度量添加到捕获的所有事务的原因。事务的详细视图在右侧显示慢帧、冻结帧和总帧

image.png

4. 移动性能监控

目的是跟踪您的应用程序跨多个服务的性能。为了衡量移动生命体征,SDK 捕获由事务和跨度组成的分布式跟踪。

分布式跟踪是一种标准技术,用于了解分布式服务中发生的情况,但对于移动应用程序来说它仍然相对较新。跟踪代表您要衡量的操作,例如在您的应用中登录或加载视图。上述两个操作不仅涉及您的应用程序,还涉及后端操作。每个跟踪由一个或多个事务组成,这些事务可以包含一个或多个跨度。例如,登录的跟踪可能包括您的应用程序的一个事务和您的后端服务的两个事务。

每个事务都包含表示单个工作单元的多个跨度,例如读取文件或查询数据库。跨度具有父子关系,这意味着跨度可以有多个子代和孙代。这是一个示例跟踪,分解为事务和跨度:

image.png

点赞(0) 打赏

评论列表 共有 0 评论

暂无评论

微信服务号

微信客服

淘宝店铺

support@elephdev.com

发表
评论
Go
顶部