Are timings done by calculating the actual process time or an absolute time ?
I'm just wondering as a quick look at the code made me think it might be the latter case. That could be problematic as a heavily or variably loaded test machine would generate distorted results.