Вопрос

Я переношу библиотеку из 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, либо вы копались в ассемблере, чтобы прочитать РДТСК.

Г.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top