iOS-Instruments之Time Profiler

2020-06-29  本文已影响0人  HCL黄

一、说明

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);
这种方法的缺点有以下几点:

二、打开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检测内存泄漏的方法

上一篇 下一篇

猜你喜欢

热点阅读