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、时间更精确