For the project described in Application of this question I need the best time clock precision possible, and one solution is to have a precise synchronisation of the computer's real time clock.
-
What is the documented precision of doing a synchro with Windows 7's Adjust date/time > Internet time > Change settings > Update now…?
-
More specifically, does it compensate the time server's ping?
Example:
- the time server sends a packet to say it's precisely 12:00:00.000
- let's say the average ping from my computer to the time server is 93ms (average ping calculated during, say, the last minute)
- the packet from time server will reach my computer at 12:00:00.093, right?
- then Windows should set the time to 12:00:00.093 and not 12:00:00.000, right?
-
If not, is there a Windows software that can do such a real-time clock synchro with ping compensation or other kind of improved precision?
Best Answer
Very interesting question, so I did some digging into several sources.
The article Part II: Adjustment of System Time by Arno Lentfer from 2012 (PDF), contains many measurements and says this :
The article notes that there are small errors that are built-in into the system clock, which does not in general keep exact time. The analysis shows that, with the examined hardware, system time may gain 0.0448 ms/s over the real clock.
The Microsoft article Support boundary to configure the Windows Time service for high-accuracy environments, concludes that the best you can hope for is 1 millisecond, using Windows 10 and Windows Server 2016 in a tightly controlled environment. Microsoft's documentation details the requirements for 1-second, 50-ms, and 1-ms accuracies, while older operating systems struggle to stay within a handful of seconds.
In contrast, Domain Time II achieves sub-millisecond provable accuracy, and, when using IEEE 1588-2008 Precision Time Protocol (PTP), can achieve low double-digit microsecond accuracy.
The Microsoft article outlines the requirements for a given accuracy :
Target Accuracy: 1 Second (1s) requirements
Target Accuracy: 50 Milliseconds requirements
Note : Run
w32tm /query /status
from the command line to see the stratum.Target Accuracy: 1 Millisecond requirements
If you are wondering what is stratum, it is important to realize that NTP is a hierarchical, semi-layered system of levels of clock. The following diagram comes from the article Network Time Protocol (NTP) How accurate is it? by Dave Gault (PDF) :
The article also lists the factors that can have a detrimental effect upon the quality of time displayed:
This came out as longer than I intended. But to answer your questions :
What is the documented precision of doing a synchro with Windows 7's Adjust date/time > Internet time > Change settings > Update now...?
That depends on which of the requirements for the above Target Accuracy apply to your installation. If none of the above requirements applies, your time may be off by up to 2 seconds from real time. The NTP time server may also have an inaccuracy, depending on its stratum. Note also that you will experience a constant time drift when using the computer's real time clock, which you might be able to measure (or which might be available from the manufacturer).
More specifically, does it compensate the time server's ping?
The answer is no. That is up to you to measure, remembering that ping time may not stay constant.
Conclusion: If you need more time accuracy than is provided by the Internet time servers, you would need to acquire and use a specialized clock device.
Interesting reading is the Algorithmic Trading article Precision Timekeeping on Windows, which explains how Microsoft has improved its internal timekeeping functions and to what precision of the system clock:
Useful tools to set or check computer time
If you wish to have your computer time synced with low-stratum servers via the Internet, you could use the free product Dimension 4 :
You may also verify your computer clock against the website time.is :