[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Guile speed versus qscheme, mzscheme
From: |
Andy Wingo |
Subject: |
Re: Guile speed versus qscheme, mzscheme |
Date: |
Mon, 31 Aug 2009 22:34:00 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.92 (gnu/linux) |
Hi Doug,
I get something lower for Guile's time (from git) -- something a little
less than 2 seconds -- but that could just be my laptop. You
Note that this is mostly a GC test -- how fast can you allocate 40/80 MB
of data. Guile's current GC is slow. I don't think, as Ludo suggested,
that this has anything to do with subrs, as that code shouldn't invoke
any subrs.
Hopefully the Boehm GC merge will get us down to mzscheme times in this
case.
Andy
On Sun 30 Aug 2009 19:54, Doug Evans <address@hidden> writes:
> Hi.
>
> I happened on this message from awhile ago,
> and got curious about the current speed of Guile.
>
> http://sourceware.org/ml/guile/2000-08/msg00187.html
>
> I got a copy of qscheme, hacked it so that it would compile with
> current gcc, and ran the benchmark again.
> OOC, I also tested with mzscheme.
>
> Here is what I got.
> No claim is made that this is a useful benchmark per se.
> I only use it here as it's what was used in the email above.
>
> system: i386-linux, fc10 (fedora core 10)
>
> bench-1.scm:
>
> (define (foo n p)
> (cond ((zero? n) p)
> ((null? p) (foo (- n 1) (cons p p)))
> (else (foo (- n 1) (car p)))))
v> (display "Starting.\n")
> (foo 10000000 '())
> (display "Done.\n")
>
> ---
>
> mzscheme (v4.1.2):
>
> bash$ time mzscheme -e '(load "bench-1.scm")'
> Starting.
> Done.
>
> real 0m0.897s
> user 0m0.818s
> sys 0m0.074s
>
> ---
>
> qscheme (0.5.1 + hacks):
>
> bash$ time qscheme bench-1.scm
> scm_vm3_engine_init:
> scm_vm3_engine_init: stack init
> scm_vm3_engine_init: regs init
> scm_vm3_engine_init: setup of call table
> ; trying to load /misc/dje/gnu/qscheme/rel/share/qscheme/0.5.1/s.scm
> ; trying to load /misc/dje/gnu/qscheme/rel/share/qscheme/0.5.1/macro.scm
> Starting.
> Done.
>
> real 0m2.329s
> user 0m2.274s
> sys 0m0.006s
>
> ---
>
> guile (1.8.5):
>
> bash$ time guile bench-1.scm
> Starting.
> Done.
>
> real 0m8.452s
> user 0m8.267s
> sys 0m0.049s
>
> ---
>
> guile (1.6.8):
>
> bash$ time guile-1.6.8 -s bench-1.scm
> Starting.
> Done.
>
> real 0m6.865s
> user 0m6.821s
> sys 0m0.020s
>
> ---
> All runs were repeated a few times to ensure these are representative.
>
> I built guile-1.6.8 myself whereas guile 1.8.5 is what's currently
> on my machine from the fedora repository. [Was there some change
> in 1.8 that slowed it down, or is the version that's in fedora
> suboptimal?]
> At any rate, it seems Guile still has a ways to go speed-wise.
> I could have messed up somewhere of course.
> Any and all comments appreciated.
> Are there any plans on the horizon to improve things?
> Did the vm improvements mentioned in the above email not make it into Guile?
>
>
--
http://wingolog.org/