I have a set-up with two PCs running Windows XP, both acquiring data from external sources and saving it locally with time-stamp per sample.

At the end of each day I move that day's from both PCs to a third PC, where I perform analysis that depends on the saved timestamps to synchronize the signals acquired on both machines.

At the beginning of every day there is some synchronization signal to both PCs that helps me find out whether there's a clock difference between them at the beginning of the day, and I compensate for that difference in my analysis.

Everything went very well until I recently replaced one of the two PCs in the set-up to a newer one (the old one died). From that moment on, the difference between the clocks grows fast from the synchronization point and my analysis screws up.

The PCs can't be connected to the internet, but I can connect them both together through a Switch/Hub. Also, I can't give the synchronization signal more than once at the beginning of that day.

I wondered if there's any setting or software that can help me increase the time synchronization between the two PCs.

Many thanks.


Install a NTP daemon for Windows on both machines and set one of the daemons as a server and the other as a client, or set both as peers.

The NTP daemon can not only adjust its own computer's system time. Additionally, each daemon can be a client, server, or peer for other NTP daemons:

  • As client it queries the reference time from one or more servers.
  • As server it makes its own time available as reference time for other clients.
  • As peer it compares its system time to other peers until all the peers finally agree about the "true" time to synchchronize to.

Have fun :)

  • Net time /setsntp:NameMachine – Guy Thomas Nov 14 '09 at 20:16

The XP clock is extremely inaccurate, especially if background processes steal idle CPU cycles.

See this Microsoft article : Configure a manual time source for a selected client computer
for instructions on how one XP machine can use others as time servers.

This requires some ports to be open on the internal firewall (which might be the root cause for the problems you're experiencing?).

  • Thanks. Currently the two computers are not connected to the network at all, so Firewall settings can't be the cause. – Roee Adler Nov 15 '09 at 13:16
  • So the cause is installed software that causes the very lousy XP internal clock to lose time, which is only normal, no worry. To sync time, you'll need to network both computers and set one as the time server of the other. – harrymc Nov 15 '09 at 13:54
  • There is no such thing as "processes stealing idle CPU cycles", and updating the time does not depend on process-based or even thread-based code, nor on "idle CPU cycles" being available. It happens in the interrupt handler for the interval timer (from memory, the routine name is KeUpdateSystemTime). These interrupts are handled at IRQL CLOCK_LEVEL, ie 24 on x86. This is higher than any ordinary I/O device interrupt, let alone process-based code. Something else is going on. – Jamie Hanrahan Jan 21 at 23:10
  • @JamieHanrahan: The stealing could involve other interrupts. – harrymc Jan 22 at 7:55
  • "Other interrupts" wouldn't involve background processes, and the only interrupts of higher IRQL than CLOCK_LEVEL aren't associated with things that occur with any frequency, nor with I/O initiated by processes. So it is wildly unlikely that process-based activity is going to slow down the clock. It's completely unclear to me how the mechanism you describe could occur. Can you explain your idea further? – Jamie Hanrahan Jan 22 at 8:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.