I'm porting a library from Windows to *NIX (currently OSX), does anyone now what function can I use instead of Microsoft's QueryPerformanceCounter and QueryPerformanceFrequency?
5 Answers
On OSX mach_absolute_time and mach_timebase_info are the best equivalents to Win32 QueryPerformance* functions.
See http://developer.apple.com/library/mac/#qa/qa1398/_index.html
Comments
http://www.tin.org/bin/man.cgi?section=3&topic=clock_gettime (and the other functions mentioned there) - it's Posix! Will fall back to worse counters if HPET is not existent. (shouldn't be a problem though)
http://en.wikipedia.org/wiki/High_Precision_Event_Timer
Resolution should be about +10Mhz.
2 Comments
clock_gettime is part of the POSIX Realtime Extension, and is unfortunately not implemented on Mac OS X.Try boost's ptime for portable high-resolution timing.
Update (prompted, 2 years on, by Mark's comment below):
These days I'd use a std::chrono::high_resolution_clock ; example.
2 Comments
Back in the day you had either uclock or you delved into assembler to read the RDTSC.
G.