Что эквивалентно Windows QueryPerformanceCounter на OSX? - PullRequest
27 голосов
/ 21 января 2009

Я портирую библиотеку из Windows на * NIX (в настоящее время OSX), кто-нибудь теперь знает, какую функцию я могу использовать вместо Microsoft QueryPerformanceCounter и QueryPerformanceFrequency?

Ответы [ 5 ]

27 голосов
/ 13 мая 2011

В OSX mach_absolute_time и mach_timebase_info являются лучшими эквивалентами Win32 QueryPerformance *.

См. http://developer.apple.com/library/mac/#qa/qa1398/_index.html

7 голосов
/ 21 января 2009

http://www.tin.org/bin/man.cgi?section=3&topic=clock_gettime (и другие функции, упомянутые там) - это Posix! Откатится к худшим счетчикам, если HPET не существует. (не должно быть проблемой, хотя)

http://en.wikipedia.org/wiki/High_Precision_Event_Timer

Разрешение должно быть около + 10 МГц.

5 голосов
/ 21 января 2009

Попробуйте увеличить ptime для определения времени с высоким разрешением.

Обновление (запрос, 2 года спустя, согласно комментарию Марка ниже):

В эти дни я бы использовал std::chrono::high_resolution_clock; Пример .

2 голосов
/ 12 декабря 2009

Он спросил о OS X. Используйте эти API от CoreAudio:

AudioConvertHostTimeToNanos(AudioGetCurrentHostTime())
0 голосов
/ 21 января 2009

В тот день, когда у вас был час, или вы погрузились в ассемблер, чтобы прочитать RDTSC .

G.

...