Clock and Timing Granularity presents ideas for a Tcl clock with finer granularity.
How precise is the timing clock in Tcl? When using after, an interesting thing happens when you start using small values, you don't necessarily get the callback until later. This can cause problems if you are doing animation, like I am right now.
Run on different WinXP SP2 computers:
Not so good.
% set e [clock micro] ; after 5 {puts [expr [clock micro] - $e]} after#39 16000
Now this is more like it!
% set e [clock micro] ; after 5 {puts [expr [clock micro] - $e]} after#5914 5055
Different machines will fail at different small values. I think this is because of the way after must be implemented on windows. See Results of some quick research on timing in Win32 , Ryan Geiss, 2002-08-16 (...with updates since then).
I'm thinking to make a separate thread use a better Win32 timing schedule command and call the main thread. I guess this is reimplementing after. Anyone have a better idea?