Re: Reasons to choose CLISP over other free implementations



Javier <javuchi@xxxxxxxxx> writes:
Well, in my experience, and with this graphs:

http://sbcl.boinkor.net/bench/

Here you can see that CLISP is still about 2x faster than SBCL
compiling things, and not only compiling, but a lot of other useful
stuff, like defining CLOSS classes and instantiating them, and
printing strings (useful for web serving).

You are to some extent misinterpreting the results by implying that
the names of the tests say exactly what is being tested. For example
the CLOS/instantiate test actually tests the speed of the rather rare
(make-instance variable) while CLOS/simple-instantiate tests
(make-instance 'constant), a vastly more common case.

Or for a couple of more neutral examples:

* The methodcall benchmark does some arithmetic inside the methods that
the benchmark defines, to ensure that clever CLOS implementations can't
optimize the dispatch away completely. When run with the default
parameters, some of that arithmetic quickly overflows into bignums.
Somebody looking at the name of the test might think that it's
testing mainly the speed of method dispatch, but if the method
dispatch is quick enough (as in SBCL), it actually becomes as much
a bignum benchmark as a method dispatch one! This effect is
prominent enough that when Christophe Rhodes wrote a paper on
automatic classification the cl-bench benchmarks based on the
results, CLOS/methodcall fell into the same cluster with the tests
that were explicitly benchmarking bignums.
* In the SEARCH-SEQUENCE benchmark SBCL does the actual searching quickly
enough that more time is spent initializing the array with a loop like
(dotimes (i (length arrays) (setf (aref array i)) (mod i 1000))) than
doing the actual search. So the test isn't really benchmarking SEARCH,
it's benchmarking MOD on two fixnums.

I also don't really understand where on that page you're seeing
anything that suggests clisp is 2x faster at printing strings.

Of course, SBCL is much faster for fixnum and float operations.

And here you are grossly misrepresenting the results, by implying that
SBCL is only faster than clisp for benchmarks that test fixnum/float
performance.

Consider CLISP for web, string manipulation, and CLOS. It is a very
capable Lisp distribution for these areas.

I wouldn't advise people to make decisions on what implementation to
use based just on benchmark numbers, without understanding what the
benchmarks are actually doing, and thinking about how those benchmarks
relate to their own use. For example, I expect that people interested
in CLOS performance would care a lot more about method call
performance than the speed of defining classes...

--
Juho Snellman
.



Relevant Pages

  • Re: clozure-cl and the old standbys
    ... be slightly faster or slightly slower than sbcl. ... With CCL ... as the 32bit version (not for every benchmark, ...
    (comp.lang.lisp)
  • Re: SBCL and programming Linux
    ... for example achieving to control events with a precision ... My opinion is that it should be easy to run a benchmark to evaluate ... collector of SBCL can help. ...
    (comp.lang.lisp)