It seems Microsoft (once again) reset some user changes in the Registry back to Microsoft's idea of what the defaults should be. This time they did it through the Windows 10 Anniversary update. One of those changes was the polling interval Windows synchronizes your computer's system clock with the NIST (National Institute of Standards and Technology) atomic clock time servers.
I have to admit, I am a bit anal when it comes to clocks being accurate. I suspect this goes back to my old military days as a communications technician where it was often "mission essential" for our global communications systems to be exactly in sync. Only back then, instead of networked servers we had to sync our systems to WWV.
In "wide area" computer-based information networks, information to a single database, for example, may be added, deleted, or modified from multiple locations anywhere in the world. Latency issues arise as data sent from distance places bounce off satellites and "hop" through multiple points towards the final destination.
It is critical these database changes are made in the correct chronological order so the most recent information is always "on top". This can only be accomplished if every single data packet sent over the network has an accurate "timestamp" embedded at the time of entry/transmission so the data is reassembled at the final destination in the correct order.
Personal computers are not very accurate time pieces. They use a "real time clock" (RTC) device (which is really an accurate "counter" and not a clock) that typically relies on a crystal oscillator or IC running at 32.768KHz that is then used to generate a hexadecimal number to represent x number of seconds since the "system" clock was last "set". These devices are always "counting". Even with power completely removed from your computer, the CMOS battery in your computer has the added task of keeping the computer's RTC "ticking".
Because personal computers are not very accurate "chronometers", even a brand new computer with a good CMOS battery can lose (or gain) several seconds or even minutes every day. This is due, in part, for 2 reasons. (1) A more accurate RTC will add considerably more to the cost of the motherboard/computer and (2), it is easy to program the operating system to periodically synchronize the RTC to an extremely accurate atomic clock over the computer's network/Internet connection - thus alleviating the need for a very accurate (and expensive) RTC in the first place.
The problem (as I see it) with Windows is the default setting to synchronize the computer's clock is once every 604,800 seconds, which is just once a week. If your computer is one where that clock "drifts" many seconds or even minutes a day, your system clock could be off significantly after one week.
There is an easy fix for this, however, involving a simple Registry hack.
One important word of caution first. Changes to the Registry with Windows Registry Editor (regedit) are done in "real time". That is, any change you make is done immediately and there is no log or history of recent changes to see what you did. So I recommend you backup the Registry or make a new Restore Point before making any changes, just in case you accidently change a wrong setting.
In Windows 10, manually creating a Restore Point is easy. In Settings, start typing in the search box, create a restore point and when you see that option appear, click on it. A System Properties window should open with the System Protection tab open. Click on Create, then enter a name/description for the Restore point in the new window. I used "change time poll interval". Then follow the prompts to proceed.
Now to change the interval, start the Registry Editor by entering regedit in the start menu search box or Cortana.
Navigate to: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\W32Time\TimeProviders\NtpClient
Double click on SpecialPollInterval to open that DWORD value. Click on the Decimal radio button then in the Value data: field, inter the interval value you want in seconds.
For example, enter:
Click OK, then exit Registry Editor and that's it.
I have to admit, I am a bit anal when it comes to clocks being accurate. I suspect this goes back to my old military days as a communications technician where it was often "mission essential" for our global communications systems to be exactly in sync. Only back then, instead of networked servers we had to sync our systems to WWV.
In "wide area" computer-based information networks, information to a single database, for example, may be added, deleted, or modified from multiple locations anywhere in the world. Latency issues arise as data sent from distance places bounce off satellites and "hop" through multiple points towards the final destination.
It is critical these database changes are made in the correct chronological order so the most recent information is always "on top". This can only be accomplished if every single data packet sent over the network has an accurate "timestamp" embedded at the time of entry/transmission so the data is reassembled at the final destination in the correct order.
Personal computers are not very accurate time pieces. They use a "real time clock" (RTC) device (which is really an accurate "counter" and not a clock) that typically relies on a crystal oscillator or IC running at 32.768KHz that is then used to generate a hexadecimal number to represent x number of seconds since the "system" clock was last "set". These devices are always "counting". Even with power completely removed from your computer, the CMOS battery in your computer has the added task of keeping the computer's RTC "ticking".
Because personal computers are not very accurate "chronometers", even a brand new computer with a good CMOS battery can lose (or gain) several seconds or even minutes every day. This is due, in part, for 2 reasons. (1) A more accurate RTC will add considerably more to the cost of the motherboard/computer and (2), it is easy to program the operating system to periodically synchronize the RTC to an extremely accurate atomic clock over the computer's network/Internet connection - thus alleviating the need for a very accurate (and expensive) RTC in the first place.
The problem (as I see it) with Windows is the default setting to synchronize the computer's clock is once every 604,800 seconds, which is just once a week. If your computer is one where that clock "drifts" many seconds or even minutes a day, your system clock could be off significantly after one week.
There is an easy fix for this, however, involving a simple Registry hack.
One important word of caution first. Changes to the Registry with Windows Registry Editor (regedit) are done in "real time". That is, any change you make is done immediately and there is no log or history of recent changes to see what you did. So I recommend you backup the Registry or make a new Restore Point before making any changes, just in case you accidently change a wrong setting.
In Windows 10, manually creating a Restore Point is easy. In Settings, start typing in the search box, create a restore point and when you see that option appear, click on it. A System Properties window should open with the System Protection tab open. Click on Create, then enter a name/description for the Restore point in the new window. I used "change time poll interval". Then follow the prompts to proceed.
Now to change the interval, start the Registry Editor by entering regedit in the start menu search box or Cortana.
Navigate to: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\W32Time\TimeProviders\NtpClient
Double click on SpecialPollInterval to open that DWORD value. Click on the Decimal radio button then in the Value data: field, inter the interval value you want in seconds.
For example, enter:
86400 for every 24 hours (my choice and recommendation),
3600 for ever hour,
144000 for every 4 hours,
43200 for twice a day.
3600 for ever hour,
144000 for every 4 hours,
43200 for twice a day.
Click OK, then exit Registry Editor and that's it.