Instruments os_signnpost添加记录耗时

2,267 阅读1分钟

在2018年9月,苹果推出了os_signpost,它可以配合Instruments,显示可视化的效果,WWDC视频Measuring Performance Using Logging有介绍

环境版本

Xcode Version: 13

Mac OS Version 12.0.1

支持版本

Xcode Version: 10+

iOS 12+

1. 书写开始结束代码

/// 导入头文件
#import <os/signpost.h>
​
/// Time Pofier 标记时间
+ (os_log_t)creatWithBundleId:(const char *)bundleId key:(const char *)key {
   return os_log_create(bundleId, key);
}
​
/// 开始
+ (void)beginTime:(os_log_t)logger {
   if (@available(iOS 12.0, *)) {
       os_signpost_id_t signPostId = os_signpost_id_make_with_pointer(logger,sin);
       //标记时间段开始
       os_signpost_interval_begin(logger, signPostId, "Launch","%{public}s","");
       //标记结束
       os_signpost_interval_end(logger, signPostId, "Launch");
       
  }
}
/// 结束
- (void)endTime:(os_log_t)logger {
   if (@available(iOS 12.0, *)) {
       os_signpost_id_t signPostId = os_signpost_id_make_with_pointer(logger,sin);
       os_signpost_interval_end(logger, signPostId, "Launch");
  }
}

2. 书写需要统计耗时的方法

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
​
  os_log_t log = [LGClangTools creatWithBundleId:"com.ruisha.com" key:"didFinishLaunch"];
  [LGClangTools beginTime:log];
 ...
 代码
 ...
  [LGClangTools endTime:log];
  return YES;
}

3. 添加os_signpost

打开Instruments选择TimeProfile

image-20211111145809045

4. 点击左上角开启录制

image-20211111145859820

5.在左侧边栏找到os_signpost,展开后找到定义的bundleId(我这里边是@“com.sharui.com”),

image-20211111150024661