2018-08-05

iOS 运行时间计算

CACurrentMediaTime

dispatch_benchmark

CACurrentMediaTime

CFTimeInterval st = CACurrentMediaTime();

for(NSInteger i = 0; i < 10000;i++) {

    @autoreleasepool {

        NSMutableArray *items = [NSMutableArray array];

        for(NSInteger j = 0; j < 10000;j++) {

          [items addObject:@"abc"];

        }

    }

}

CFTimeInterval et = CACurrentMediaTime();

NSLog(@"total Runtime:%g - %g = %g s",et,st,et - st);

特点: 1、公有函数  2、精度不够

dispatch_benchmark

这是GDC中的私有函数,使用时要先申明

/*

*  @count 运行的次数

*  @block 为运行代码

*  @return 返回运行的时间

*/

extern uint64_t dispatch_benchmark(size_t count, void (^block)(void));

uint64_t t = dispatch_benchmark(1000, ^{

        @autoreleasepool {

            NSMutableArray *items = [NSMutableArray array];

            for(NSInteger j = 0; j < 10000;j++) {

                [items addObject:@"abc"];

            }

        }

    });

    NSLog(@"run time: %llu ns",t);

特点:1、使用简洁  2、时间更精确

你可能感兴趣的:(2018-08-05)