【发布时间】:2010-10-02 15:39:20
【问题描述】:
我正在将一个库从 Windows 移植到 *NIX(目前是 OSX),现在有人可以使用什么函数来代替 Microsoft 的 QueryPerformanceCounter 和 QueryPerformanceFrequency 吗?
【问题讨论】:
标签: c++ c windows unix porting
我正在将一个库从 Windows 移植到 *NIX(目前是 OSX),现在有人可以使用什么函数来代替 Microsoft 的 QueryPerformanceCounter 和 QueryPerformanceFrequency 吗?
【问题讨论】:
标签: c++ c windows unix porting
http://www.tin.org/bin/man.cgi?section=3&topic=clock_gettime (以及那里提到的其他功能) - 这是Posix!如果 HPET 不存在,将退回到更差的计数器。 (不过应该不是问题)
http://en.wikipedia.org/wiki/High_Precision_Event_Timer
分辨率应约为 +10Mhz。
【讨论】:
clock_gettime 是 POSIX 实时扩展的一部分,遗憾的是没有在 Mac OS X 上实现。
过去,您要么拥有 uclock,要么深入研究汇编程序以阅读 RDTSC。
G.
【讨论】:
【讨论】:
他询问了 OS X。使用 CoreAudio 的这些 API:
AudioConvertHostTimeToNanos(AudioGetCurrentHostTime())
【讨论】:
在 OSX 上,mach_absolute_time 和 mach_timebase_info 是 Win32 QueryPerformance* 函数的最佳等效项。
见http://developer.apple.com/library/mac/#qa/qa1398/_index.html
【讨论】: