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;
}
将此代码放入要使用的.m文件中,引用系统头文件 #import <mach/mach_time.h>
使用方法:
CGFloat time = BNRTimeBlock(^{
//需要获取时间的代码块
});
time即为代码执行时间
});