iOS自带的性能监控

[复制链接]
回帖奖励 5 金钱      回复本帖可获得 1 金钱奖励! 每人限 1 次
查看895 | 回复5 | 2024-8-23 17:44:42 | 显示全部楼层 |阅读模式
对于APP的性能监控,想必大部分的开发者第一时间想到的是使用第三方平台提供的库,以节约开发时间。但是对于极度重视信息安全与价值的开发者来说这可不是什么好事。所以今天来介绍iOS自带的性能监控库MetricKit,它能够精确的帮我们收集各种性能收据,并返回给我们。
1. 启用MetricKit
  1. // 带上协议
  2. @interface AppDelegate () <MXMetricManagerSubscriber>

  3. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  4. {
  5.     if (@available(iOS 13.0, *)) {
  6.         // 启动监控
  7.         [MXMetricManager.sharedManager addSubscriber:self];
  8.     }
  9.     return YES;
  10. }

  11. - (void)applicationWillTerminate:(UIApplication *)application
  12. {
  13.     if (@available(iOS 13.0, *)) {
  14.         [MXMetricManager.sharedManager removeSubscriber:self];
  15.     }
  16. }
复制代码

2. 数据搜集
以下是MXMetricManagerSubscriber 协议的两个方法,如果需要非常精确的数据上传到自己的后台,请实现这个两个方法上传数据,其中含有的数据数据详情,可查看官方文档。如果不需要,部分数据会传到苹果公司的后台,可以通过 Xcode > Window -> Organizer -> Metrics 查看,可以查看各项指标,并且和历史版本进行对比。
  1. - (void)didReceiveMetricPayloads:(NSArray<MXMetricPayload *> * _Nonnull)payloads  API_AVAILABLE(ios(13.0)) {}
  2. - (void)didReceiveDiagnosticPayloads:(NSArray<MXDiagnosticPayload *> * _Nonnull)payloads  API_AVAILABLE(ios(14.0)) {}
复制代码

3.如果收集URLSession 的监控数据,请实现其代理方法(这个与MetricKit无关):
  1. func urlSession(_ session: URLSession, task: URLSessionTask, didFinishCollecting metrics: URLSessionTaskMetrics) {
  2.     print("metrics: \(metrics.transactionMetrics)")
  3. }
复制代码



回复

使用道具 举报

iiv | 2024-8-23 18:41:29 | 显示全部楼层

回帖奖励 +1 金钱

俺是来领积分的
回复 支持 反对

使用道具 举报

putin | 2024-8-23 19:27:22 | 显示全部楼层

回帖奖励 +1 金钱

俺也一样
回复

使用道具 举报

MrZeFr | 2024-8-24 21:13:34 | 显示全部楼层

回帖奖励 +1 金钱

666
回复

使用道具 举报

粉色小风扇 | 2024-8-26 09:36:56 | 显示全部楼层

回帖奖励 +1 金钱

厉害了,改天试试
回复 支持 反对

使用道具 举报

WT_0213 | 2024-8-26 10:10:51 | 显示全部楼层

回帖奖励 +1 金钱

俺是来领积分的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则