> I can get it easily get this on my desktop (AMD Ryzen Threadripper 3990X) but 
> not at all on my laptop (Intel Core i7-8650U)

Not sure if that's really related but:

Have you checked what is your default Windows timer resolution?  Some 
applications change it from the default
100HZ to 1000HZ (by e.g. using timeBeginPeriod(1) -- MS Edge does this, and 
Chrome, I think, but not Firefox -- yet
the change is actually _global_ as documented).

The following code shows the timer resolution:

#include <windows.h>
#include <timeapi.h>
#include <stdio.h>
#include <synchapi.h>

int main()
{
    unsigned int prev = timeGetTime(), next;
    Sleep(1);
    next = timeGetTime();
    printf("Sleep(1) = %u\n", next - prev);
    return 0;
}

Output:

Sleep(1) = 10
means the default 100HZ

Sleep(1) = 1
means the increased resolution of 1ms

Anton Lavrentiev
Contractor NIH/NLM/NCBI

P.S. timeBeginPeriod():

This function affects a global Windows setting. Windows uses the lowest value 
(that is, highest
resolution) requested by any process. Setting a higher resolution can improve 
the accuracy of
time-out intervals in wait functions. However, it can also reduce overall 
system performance,
because the thread scheduler switches tasks more often. High resolutions can 
also prevent the
CPU power management system from entering power-saving modes.

Reply via email to