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.
Tom wrote:
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.
If you can make morphic snappier I would be happy. There has been lots of discussion about this on the list, but I can't recall where the big speed hogs are. If you find them, let us know.
Karl
squeak-dev@lists.squeakfoundation.org