This is the mail archive of the guile@sources.redhat.com mailing list for the Guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: How fast will the Guile VM be?


On Sat, Sep 02, 2000 at 04:20:15PM -0400, Keisuke Nishida wrote:
> However, I don't think the VM is faster than native-code compilers.
> Dan said his goal with his new QScheme that uses a JIT compiler is to
> have scheme code run only two times slower than equivalent C code.
> On the other hand, I suppose some Scheme compilers produce native code
> that run as efficient as or faster than C programs, right?  Do they
> have slower interpreters or no interpreter?

I am not aware of any Scheme compiler that compiles to native code.
The fastest Scheme compiler is Stalin (or at least, that what everyone
says), and it only compiles to C.

Bigloo and Hobbit compile to C as well... MIT Scheme and MzScheme compile
to bytecode or something I think. Kawa compiles to Java bytecode, and
it may be possible to recompile that to native code via gcj.

> There are lots of Scheme compilers/interpreters, so I don't quite
> understand which one has what feature.  Is there a good summary of
> features/benchmarks between several systems?

Stalin comes with some benchmarks, but I never actually tried to run them
since the readme says they need 150 megs of memory to run. There has been
some benchmarking code floating around... check the usual Scheme places
(comp.lang.scheme, Scheme repository, etc.) I don't know how useful
they are, though. It's sort of hard to benchmark Scheme because every
implementation has at least one stupid performance problem.

I could tell you what my impressions are. Generally, there are two performance
measures, startup time and run time... (this is far from scientific)

Guile: large startup time, moderate run time
Bigloo: moderate startup time, moderate run time
MzScheme: small startup time, moderate run time
Stk: small startup time, large run time
Stalin: small startup time, small run time
SCM: small startup time, small run time
Hobbit (w/Guile): large startup time, small run time

(Kawa isn't included because the time depends on the Java VM,
others aren't included because I never tried them)

With Guile the startup time is almost entirely the module system... I
removed the module system from 1.3.5 as an experiment and Guile started
up faster than SCM. Jost had something going in that direction IIRC.

As far as run time, I have examined the output of Stalin, Hobbit, and
Bigloo; even Stalin is far from optimal... I think they're mostly
limited by the target language though. I wonder if someone should do a
Scheme add-on for gcc.

-- 
C. Ray C. aka Christopher Cramer
crayc@pyro.net
http://www.pyro.net/~crayc/
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-user

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]