On 15 October 2013 13:48, Felipe Farinon <felipe.fari...@powersyslab.com>wrote:

> I have found that
> VirtualBox's QueryPerformanceCounter doesn't guarantee monotonicity
> https://www.virtualbox.org/ticket/11951. They argue that even Windows
> QueryPerformanceCounter doesn't guarantee it.
>

This is true, the performance counters are highly unreliable.  With OpenPGM
I followed the SQL Server teams approach and move towards Windows
multimedia timers they offer greater stability and lower cost.  Copy &
pasting:

/* Multi-media like timer API, returns 100-nanoseconds intervals.
 *
 * Faster than QueryPerformanceCounter and hence deployed for SQL Server.
 *
http://blogs.msdn.com/b/psssql/archive/2008/12/16/how-it-works-sql-server-no-longer-uses-rdtsc-for-timings-in-sql-2008-and-sql-2005-service-pack-3-sp3.aspx
 */
static
pgm_time_t
pgm_mmtime_update (void)
{
        FILETIME ft;
        int64_t aligned_ft;

        GetSystemTimeAsFileTime (&ft);
        memcpy (&aligned_ft, &ft, sizeof (int64_t));
        return (pgm_time_t)( aligned_ft / 10 );
}

The caveat being you are still affected by NTP adjustments, but this is
available on platform where *GetTickCount64* is not.

GHC Haskell had similar discussions:

http://ghc.haskell.org/trac/ghc/ticket/5865


Chromiums discussion on topic:

https://chromium.googlesource.com/chromium/src/+/acca91d2f89419fe27e275e55fac228713497da4/base/time_win.cc


-- 
Steve-o
_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to