[PD] [PD-dev] extremely fast pure pd [list-drip] (fwd)

Mathieu Bouchard matju at artengine.ca
Wed Feb 25 20:04:41 CET 2009


On Wed, 25 Feb 2009, Hans-Christoph Steiner wrote:

> Sounds very cool.  Just out of curiosty, how did you measure the speed 
> difference?  That would be a useful technic to know about for testing in 
> general.

I use [t b a b] with [realtime], similar to enrique's, but i pass a float 
around for deciding of how many elements in the list. I made it 
automatically try several consecutive powers of two. I generated a large 
list using [#for] and [#to_list], but I included the generation of the 
list in the measurements I made. since then, I moved that part to above 
the [t b a b] so that it doesn't get measured. But that extra time is 
almost neglectible and taking it out would only result in a more insane 
speed ratio.

I also tried [usertime] but it is not really more accurate than [realtime] 
and its resolution is much worse. [usertime] and [systemtime] is in 
GridFlow and just uses the OS's corresponding functions, and in Linux, 
they sort of suck.

Finally I have just tried [tsctime], also from GridFlow, and this uses the 
CPU's built-in clock. When it does work, it's much more consistent than 
[realtime], but it can be fooled by the power-saving of the CPU, and it 
doesn't stop when switching to different processes, just like [realtime]. 
OTOH, [usertime] and [systemtime] do stop when switching processes, but 
they accumulate a lot of error.

Ideally, you'd put the equivalent of [tsctime] straight in the Linux 
kernel's scheduler, and it'd measure the time locally per process. If you 
also put it in the Linux kernel's system-call gate, you can also rewrite 
the usertime/systemtime system-call to use that and get a million times 
more precision than the existing functions.

Else, if you want an accurate measurement, you have to do it 
statistically. On average, making a test four times will get you twice 
more precision, so if you repeated the test 10 times and now you repeat it 
1000 times, you will get one more trustable decimal in the average time.

  _ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec


More information about the Pd-list mailing list