Quote from PocketChange:
Windows performance timers are accurate for measuring processes to microseconds. Using NTP to sync System Time with the exchange or Internet Time Servers should get you within +/- 50ms.
Should be fine if your just collecting data to run simulations.
You may need to adjust or throttle your processes if you plan to trade live off the data stream.
This thread is confusing real time feed and order processing versus sequential data feed logging. From your replies seems like you are focused on the latter.
Two things are going on here...
Please see -> http://en.wikipedia.org/wiki/Preemption_(computing)#Time_slice
Winblows can measure microseconds, IF SOMETHING IS TIMED IN A TIME SLICE. The problem is that Winblows does 10 ms time slices. Thus the AVERAGE "hunk of data" (aka your ticks) will have an added extra 10 ms on a Winblows box. If both you and your data provider are using Winblows, then you will get your and the data providers added 10 ms average time slice...thus you will have 20 ms average latency on your ticks. The previous discussion is for XP/2000/2003/NT. I do not know about Vista/7. (It can be "tuned," but most shops don't have the in house expertise to tinker with the registry settings to put the time slice to 1 ms...and changing that setting may screw up a bunch of things on a Winblows box.)
For Linux (and many UNIX) shops and users...
If you are using a 2.4 kernel...upgrade...you are still using a 10 ms time slice. If you are using a 2.6 kernel...than (IIRC) you have a 1 ms time slice out of the box.
That is why linux shops (generally) have less latency than your Winblows shops.
To agree with a previous poster (and to disagree) - yes, Winblows does not run NTP well. A linux box runs it fine. I have seen many Linux boxes running within 1 microsecond of UTC. I am sure there are those here who have seen linux boxes within nanoseconds of UTC.
-gastropod
disclaimer: yes, I work with data on Linux boxes.

