Что является эквивалентом 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*.

См. http://developer.apple.com/library/mac/.

Попробуйте Boost Ptime для портативного времени с высоким разрешением.

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

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

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

AudioConvertHostTimeToNanos(AudioGetCurrentHostTime())

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

Г.

Другие вопросы по тегам