[Pipet Devel] Profiling Overflow

Jean-Marc Valin jean-marc.valin at hermes.usherb.ca
Thu Aug 31 12:28:12 EDT 2000


This information might be interesting to some of you. I have done some profiling
in Overflow in order to measure the overhead of spliting the process into nodes
(the overhead of Overflow vs. C/C++). The tests were performed on my Athlon 500.
Here are the timings I got (+- 10%):

Node overhead: 2.7 us (1350 clock cycles)
Loop overhead: 1.1 us (550 clock cycles)

The node overhead is the time it takes to execute the simplest node. It means
that you should try, on average, to have nodes that do more that 2.7 us of

Loop overhead is the minimum time for one loop iteration. Basically, it means
that the loop overhead is negligeable.

I think these timings are quite reasonable. What that means is that if you use
Overflow (or Piper, of course!) to compute FFT's, then your everhead is
negligeable, but it you use it for elementary operations (+,-,*,/) at the node
level, then expect to pay a high price.

When I tried the same with matlab I got:

Function (node) overhead: 8-18 us  (8 for a builtin, 18 for an m-file)
Loop overhead: < 1 us (I cannot measure more precisly)


Jean-Marc Valin
Universite de Sherbrooke - Genie Electrique
valj01 at gel.usherb.ca

More information about the Pipet-Devel mailing list