Which Smalltalk to use for production ?

John Maloney jmaloney at media.mit.edu
Sun Oct 24 23:19:46 UTC 2004


Jon,

Thanks for running these tests. Of course, tinyBenchmarks have lots
of flaws--they don't cover the entire space of Smalltalk operations
and the operation mix is certainly not typical of any real application.
But when we were building the Squeak VM, Dan said that they were
the only benchmarks he really cared about and it turns out that they
seem to be pretty good at predicting the overall performance of a
Smalltalk virtual machine.

Squeak does great for a simple bytecode interpreter. Ian knows much
more about this than I do, but I think you typically get a speedup of
1.5 or so with the simplest possible JIT just by eliminating the bytecode
dispatch. Cincom probably worked quite hard to get it up to 3x. The
factor of 10x in send performance is not at all surprising, given that
Squeak allocates a context object and copies over the arguments on
every non-trivial send, whereas Cincom uses a LIFO context cache most
of the time. I suspect the send tiny benchmark actually forces them
to spill contexts into the heap more than normal programs, so their
actual send performance may be more than 10x better than Squeak's.

I'm sure Cincom does much better on normal float arithmetic, but
Squeak's vector primitives probably outperform Cincom's normal float
arithmetic. Does Cincom support float vector operations?

Last I checked, Squeak was quite a bit faster than Python.

It depends on the application, of course, but I've found Squeak fast
enough for lots of "real" applications, including one that ran on a
circa 2000 Sharp PDA running at 66 MHz. The trick is to write
primitives to do the heaving lifting (e.g. JPEG decompression).

	-- John


At 2:35 PM -0400 10/24/04, Jon Hylands wrote:
>So, in terms of bytecodes per second, 5i2 is 2.5x faster than Squeak. For
>sends per second, the answer is 10x, but I suspect the benchmark fails due
>to some kind of JIT optimization.
>
>It would be interesting to try some more complex benchmarks of Smalltalk
>code on various platforms...
>
>Later,
>Jon




More information about the Squeak-dev mailing list