benchmarks

Tom tmb at lumo.com
Fri Mar 30 20:21:36 UTC 2001


On Fri, Mar 30, 2001 at 08:04:32AM -0800, Tim Rowledge wrote:
> > > But why does Squeak do poorly compared to Java (even without JIT)?  Is
> > > it mainly because Java has static typing and no escaping method contexts
> > > (blocks)?
> The top set of benchmarks are almost purely number related trivial math
> tests. 

fib should be dominated by function calls, and arrayRounds and assocRounds
by accessors or looping.  If they were dominated by math, then the
implementation would either be doing a really lousy job at math or a
really great job at those other things.

> They make no meaningful usage of anything remotely interesting to
> do with control, polymorphism, varying data types, memory usage,
> whatever.

Yes, that's deliberate. Those uninteresting things may only make up
a small fraction of the code of Lisp or Smalltalk programs, but they
are also the things that often dominate inner loops (at least my inner
loops) and that actually can be optimized by a good compiler/runtime.
As another saying goes, for many programs, 95% of the time is spent in 5%
of the code.

> When you get to really complex systems the old Lisp truism almost
> applies "any sufficiently complex application ends up implementing Lisp
> badly" and your C-blah-glah program becomes both poorly performing and
> unmaintainable.

I don't get your point.  As a Squeak user, I merely wanted to get a very
rough impression where it stands with respect to other implementations,
in particular other byte-code implementations of dynamic languages.
That lets me figure out what kind of problems I can tackle in it, also
in comparison to my experience with Python and Lisp.  And it gives me a
better idea of why things like Scamper or Morphic are a bit sluggish on
my PII/300 and what I might be able to do about it.  The good news is that
as far as byte code interpreters go, Squeak seems to be doing pretty well.

> What is 'Bistro' and why is it so much slower than Squeak on the STIC
> tests?

Bistro is an implementation of a Smalltalk-variant on top of Java
(http://bistro.sourceforge.net/).  Without declarations, it's
significantly slower than Squeak; with declarations, it seems to
be significantly faster.  You can mix Smalltalk and Java code.

Cheers,
Thomas.





More information about the Squeak-dev mailing list