Kernel ticking time statistics are the most accurate. Please refer to Quick Performance Measurements for details
#import <mach/mach_time.h> // for mach_absolute_time
double MachTimeToSecs(uint64_t time)
{
mach_timebase_info_data_t timebase;
mach_timebase_info(&timebase);
return (double)time * (double)timebase.numer /
(double)timebase.denom / NSEC_PER_SEC;
}
- (void)profileDoSomething
{
uint64_t begin = mach_absolute_time();
[self doSomething];
uint64_t end = mach_absolute_time();
NSLog(@"Time taken to doSomething %g s",
MachTimeToSecs(end - begin));
}
Copy the code