Big Nerd Ranch Weblog » How to Time
I was asked three times last week how I find how long an activity takes on the Mac and the iPhone. Here is the most accurate method that I know of:
#import uint64_t start = mach_absolute_time();
// do stuff to be timed
uint64_t end = mach_absolute_time();
uint64_t elapsed = end - start;
mach_timebase_info_data_t info;
if (mach_timebase_info (&info) != KERN_SUCCESS) {
printf ("mach_timebase_info failed\n"); }
uint64_t nanosecs = elapsed * info.numer / info.denom;
uint64_t millisecs = nanosecs / 1000000;
As you use this, remember that the elapsed time for a given function will vary with the load the system is under.
The "timing" couldn't be better - I was just researching this topic last week.