Я портирую библиотеку из Windows на * NIX (в настоящее время OSX), кто-нибудь теперь знает, какую функцию я могу использовать вместо Microsoft QueryPerformanceCounter и QueryPerformanceFrequency?
В OSX mach_absolute_time и mach_timebase_info являются лучшими эквивалентами Win32 QueryPerformance *.
mach_absolute_time
mach_timebase_info
См. http://developer.apple.com/library/mac/#qa/qa1398/_index.html
http://www.tin.org/bin/man.cgi?section=3&topic=clock_gettime (и другие функции, упомянутые там) - это Posix! Откатится к худшим счетчикам, если HPET не существует. (не должно быть проблемой, хотя)
http://en.wikipedia.org/wiki/High_Precision_Event_Timer
Разрешение должно быть около + 10 МГц.
Попробуйте увеличить ptime для определения времени с высоким разрешением.
Обновление (запрос, 2 года спустя, согласно комментарию Марка ниже):
В эти дни я бы использовал std::chrono::high_resolution_clock; Пример .
std::chrono::high_resolution_clock
Он спросил о OS X. Используйте эти API от CoreAudio:
AudioConvertHostTimeToNanos(AudioGetCurrentHostTime())
В тот день, когда у вас был час, или вы погрузились в ассемблер, чтобы прочитать RDTSC .
G.