On Feb 28, 2006, at 12:09, Nicolas Cannasse wrote:
Yesterday I did a quick fib(30) benchmark comparing Parrot Win32 daily
build (using jit core) and NekoVM (http://nekovm.org). The results are
showing that Parrot is 5 times slower than Neko (see my blog post on
this point there : http://ncannasse.free.fr/?p=66).
Benchmarks are just damn lies ;)
$ time ./parrot -j fib.pir 30
Fib(30): 1346269
real 0m4.774s
Ok that's slow (AMD [EMAIL PROTECTED], unoptimized parrot build), you are right.
But:
$ time ./parrot -Cj fib.pir 30
Fib(30): 1346269
real 0m0.036s
$ time ./parrot -Cj fib.pir 38
Fib(38): 63245986
real 0m0.675s
$ time ./parrot -Cj fibn.pir 38
Fib(38.0): 63245986.0
real 0m1.475s
The rather slow function call performance is coming from a complex call
frame creation and flexible argument passing. The whole code involved
with calls/returns isn't optimized either.
The '-Cj' runtime options tries to compile simple subs to native
assembler code (and obviously succeeds here ;)
leo