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