This is the mail archive of the
guile@cygnus.com
mailing list for the Guile project.
Re: performance
- To: guile@cygnus.com
- Subject: Re: performance
- From: Rob Browning <rlb@cs.utexas.edu>
- Date: 09 Jun 1999 19:40:22 -0500
- References: <199903222151.NAA12229@canuck.cygnus.com.> <m2n214psbb.fsf@blinky.bfr.co.il> <xy7iubsftnx.fsf@mdj.nada.kth.se>
[ Sorry to revive such and old thread, but I'm just browsing my
backlogs... ]
Mikael Djurfeldt <mdj@nada.kth.se> writes:
> My experience hitherto is that I've never encountered *any* Scheme
> interpreter which has been faster than Guile's normal evaluator
> except for SCM. So it is still my belief that Guile is the second
> fastest interpreter in the world. I'm amazed that people are
> complaining about performance problems.
Hmm. When you say interpreter, do you mean only strict interpretation
(excluding on the fly byte compilation?). If not, then RScheme wins.
For what it's worth, I got curious and decided to do some benchmarking
here. I tried guile, RScheme, and stalin (just for fun). Here's what
I found.
For RScheme I had to change (force-output) to (flush-output-port
(current-output-port)), and for stalin I had to delete the flush
altogether since it has no similar primitive. Stalin really does
provide astounding performance, and the executable was only 11k :>
Now all we need is a way to call stalin object code from RScheme and
guile, and I'd be ecstatic.
Guile 1.3 (debug): 382
Guile 1.3 (no-debug) 565
RScheme (current beta interpred): 4684
RScheme (current beta "rsc -ccode" compiled): 12634
Stalin (full compilation): 101437
Guile command:
$ guile -l guile-speed-test.scm
RScheme interpreted command:
$ fshell rscheme-speed-test.scm
RScheme compiled command:
$ rsc -p -ccode rschemespeedtest.mcf
$ (cd rschemespeedtest && make librschemespeedtest.so)
$ RS_MODULE_PATH=/home/rlb/rscheme-speed-test \
LD_LIBRARY_PATH=/home/rlb/rscheme-speed-test \
fshell +rschemespeedtest
Stalin command:
$ stalin -d1 -On stalin-speed-test.sc
$ stalin-speed-test
--
Rob Browning <rlb@cs.utexas.edu> PGP=E80E0D04F521A094 532B97F5D64E3930