美文网首页
iOS-Instruments之Time Profiler

iOS-Instruments之Time Profiler

作者: HCL黄 | 来源:发表于2020-06-29 14:43 被阅读0次

一、说明

Time Profiler帮助我们分析代码的执行时间,找出导致程序变慢的原因,告诉我们“时间都去哪儿了?”

原始性能分析方法:写个单元测试
    NSDate *startDate = [NSDate date];
    for (int i = 0; i < 100000; i++) {
        NSString *string = @"123";
        string = [string stringByAppendingString:@"abc"];
        NSLog(@"%@", string);
    }
    NSDate *endDate = [NSDate date];
    NSTimeInterval interval = [endDate timeIntervalSinceDate:startDate];
    NSLog(@"time = %f",interval);
这种方法的缺点有以下几点:
  • 1、测试效率太低,很多性能瓶颈是很难预估到的,需要从上层到下层进行逐步排除;
  • 2、无法对界面渲染的效率进行测试,找出界面性能瓶颈;
  • 3、NSLog的分析不够精确,可能在模拟器上由于开发设备性能速度快,无法明显区分出性能瓶颈。

二、打开Instruments Time Profiler

FC53D744-0DD1-453B-BF16-D8360A3FD822.png
尽量使用真机调试,并且使用release配置,这样比较准确点。
2B8541D6-33B4-4A89-98F7-A77A0FDE3A90.png
双击耗时比较多的函数调用
1589596E-568A-4487-9109-37582FFEFA66.png
1296DE49-A955-49A3-9127-45CD22F87B46.png

及时释放占用内存大的临时变量,减少内存占用峰值。

- (void)viewDidLoad {
    [super viewDidLoad];
    self.title = @"首页";

    NSDate *startDate = [NSDate date];
    for (int i = 0; i < 100000; i++) {
        @autoreleasepool {
            NSString *string = @"123";
            string = [string stringByAppendingString:@"abc"];
//            NSLog(@"%@", string);
        }
    }
    NSDate *endDate = [NSDate date];
    NSTimeInterval interval = [endDate timeIntervalSinceDate:startDate];
    NSLog(@"time = %f",interval);
}

注释掉打印,重新跑一遍工程,很明显流程多了


A25F291B-1092-4FA8-9388-6BC2B1858792.png

参考

instrument Time Profiler总结

iOS检测内存泄漏的方法

相关文章

  • iOS-Instruments之Time Profiler

    一、说明 Time Profiler帮助我们分析代码的执行时间,找出导致程序变慢的原因,告诉我们“时间都去哪儿了?...

  • instrument之Time Profiler

    1. 工欲善其事必先利其器 time profile时间分析工具用来检测应用CPU的使用情况,可以看到应用程序中各...

  • Instrument之Time Profiler

    时间分析器:用来测量被方法/函数打断的CPU使用情况 时间分析器工具用来检测CPU的使用情况。它可以告诉我们程序中...

  • Instruments之Time Profiler的使用

    1、Time Profiler简介 (1) Time Profiler时间分析工具用来检测应用CPU的使用情况。可...

  • Time Profiler

    https://www.jianshu.com/p/21d29be26479

  • Time Profiler

    CPU分析工具分析代码的执行时间 1,首先打开instrument,,选择工具为Time Profiler 2,勾...

  • Time Profiler

    Time Profiler 用来检测app中每个方法所用的时间,并且可以排序,并查找出哪些函数占用了大量时间;

  • Instruments 之 Time Profiler 使用

    当 APP 开发到了一定的阶段,性能优化这个话题就会被提起,性能优化的途径有很多,不过通常都会使用到 Apple ...

  • 监控卡顿函数

    第一种、使用工具time profiler

  • instrument Time Profiler

    http://blog.csdn.net/jeffasd/article/details/50804289 一.工...

网友评论

      本文标题:iOS-Instruments之Time Profiler

      本文链接:https://www.haomeiwen.com/subject/ytqofktx.html