计算代码执行的时间

意义

在进行应用优化的时候,有时候需要计算某段代码执行的时间,比如:在进行数据下载或者使用数据库插入的时候,大量的数据读写非常耗费时间造成UI卡顿,通过计算我们可以大致推断出那些部分耗费时间,从而针对性的优化

方法一:

1
2
3
4
5
6
NSDate* tmpStartData = [NSDate date];
// code here...
double deltaTime = [[NSDate date] timeIntervalSinceDate:tmpStartData];
NSLog(@"cost time = %f", deltaTime);

方法二:

1.导入头文件

1
#import <mach/mach_time.h> // for mach_absolute_time() and friends

2.计算时间的方法

  • tips:在方法外部定义,这是一个单独的函数
1
2
3
4
5
6
7
8
9
10
11
12
CGFloat BNRTimeBlock (void (^block)(void)) {
mach_timebase_info_data_t info;
if (mach_timebase_info(&info) != KERN_SUCCESS) return -1.0;
uint64_t start = mach_absolute_time ();
block ();
uint64_t end = mach_absolute_time ();
uint64_t elapsed = end - start;
uint64_t nanos = elapsed * info.numer / info.denom;
return (CGFloat)nanos / NSEC_PER_SEC;
}

3.在方法内部,计算时间的位置调用该方法

1
2
3
4
CGFloat * time = BNRTimeBlock{
...code...
}