По крайней мере, начиная с Mountain Lion, mach_absolute_time()
возвращает наносекунд , а не абсолютное время (которое было числом циклов шины).
Следующий код на моемMacBook Pro (Core I7 с частотой 2 ГГц) показал, что время вызова mach_absolute_time()
составляет в среднем 39 нс за 10 прогонов (мин. 35, макс. 45), то есть, по сути, время между возвратом двух обращений к mach_absolute_time (), около 1вызов:
#include <stdint.h>
#include <mach/mach_time.h>
#include <iostream>
using namespace std;
int main()
{
uint64_t now, then;
uint64_t abs;
then = mach_absolute_time(); // return nanoseconds
now = mach_absolute_time();
abs = now - then;
cout << "nanoseconds = " << abs << endl;
}