[Ecls-list] strange things with declarations, ECL 9.6.2
Gábor Balázs
gabalz at gmail.com
Fri Aug 14 13:48:31 UTC 2009
Sorry for the late answer, I just returned back from holiday.
I tried it with the latest ECL 9.8.3 version (and gcc 4.3.3), and it works
properly as you said. However it is really slow compared to SBCL. I
converted 100000000 double floats to/from unsigned integers and on my
computer ECL was ~5 times slower than SBCL (code is attached to repeat this
test). I ran the test by (asdf:oos 'asdf:load-op :tryme). The speed
difference increases if more doubles are converted. The consed data amount
difference is also significant.
ECL:
real time : 119.914 secs
run time : 111.667 secs
gc count : 8798 times
consed : 30900318944 bytes
SBCL
23.515 seconds of real time
21.789362 seconds of total run time (21.709357 user, 0.080005 system)
[ Run times consist of 1.296 seconds GC time, and 20.494 seconds non-GC
time. ]
92.66% CPU
41,880,163,970 processor cycles
5,114,640,016 bytes consed
I also tried my library's speed test and that showed me that ECL is 100-300
times slower than SBCL.
I know that ECL is not primarily designed for scientific computation
purposes, but I want to ask a few things.
- What kind of experience do you have about speed differences between ECL
and an other Lisp implementations (e.g. SBCL)?
- Can you recommend me a good profiler for ECL? Should I use Slime or gprof
somehow?
Thank you for the advices.
Best,
`Gabor`
2009/7/15 Juan Jose Garcia-Ripoll <juanjose.garciaripoll at googlemail.com>
> 2009/7/9 Gábor Balázs <gabalz at gmail.com>:
> > I try to create a fast double encoder/decoder function for ECL like
> SBCL's
> > double-float-high-bits, double-float-low-bits and make-double-float. I
> want
> > to do it, because I want to support ECL by my library. But I experienced
> > very strange things with using type declarations. I attached my test
> code.
>
> The code to convert from a lisp object to a C integer was rejecting
> bignums, even though they enter into the ranges (0 UINT_MAX) and
> (INT_MIN, INT_MAX). It has been solved in the git and CVS
> repositories.
>
> Juanjo
>
> --
> Instituto de Física Fundamental, CSIC
> c/ Serrano, 113b, Madrid 28006 (Spain)
> http://juanjose.garciaripoll.googlepages.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20090814/1c70ea43/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: tryme.lisp
Type: application/octet-stream
Size: 4645 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20090814/1c70ea43/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: tryme.asd
Type: application/octet-stream
Size: 68 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20090814/1c70ea43/attachment-0001.obj>
More information about the ecl-devel
mailing list