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