I need to get NSTimeInterval value from last device boot. I found CACurrentMediaTime() which suits this task, but in my app I am not using Core Animation and I don\'t think
The fastest low-level method is to read system uptime from processor using mach_absolute_time()
#include <mach/mach_time.h>
int systemUptime()
{
static float timebase_ratio;
if (timebase_ratio == 0) {
mach_timebase_info_data_t s_timebase_info;
(void) mach_timebase_info(&s_timebase_info);
timebase_ratio = (float)s_timebase_info.numer / s_timebase_info.denom;
}
return (int)(timebase_ratio * mach_absolute_time() / 1000000000);
}
Note that timebase_ratio is different for processors. For example, on macbook it equals 1 whereas on iPhone 5 it equals 125/3 (~40).
The NSTimeInterval value since the last system restart can be acquired more directly via the following Foundation object and method:
[[NSProcessInfo processInfo] systemUptime]
Try a C system call, times(3) is supposed to return uptime.
On MacOSX, uptime also returns such. So there has to be a way though that as well.