[squeak-dev] Dorado (was: Squeak on Android)

Jecel Assumpcao Jr. jecel at merlintec.com
Wed Dec 22 22:39:15 UTC 2010


Eliot Miranda wrote:

> While things like temp var and inst var access may be cheap sends
> can run very high (think of a cache miss lookup or a cache miss lookup
> followed by MNU processing), as can some primitives.  I would think
> 28 microcode ops per bytecode is a believable average.

I agree! And in the case of Squeak we have added stuff like exception
handling that makes sends even slower. But the code from which the
tinyBenchmark numbers are obtained is not too typical for Smalltalk (it
is a loop with not too many message sends other than array accesses and
SmallInteger math) so I was speculating that if tinyBenchmarks were run
on the Dorado we might get higher than expected numbers.

Though I think I have already mentioned this here, one thing I found
hard to understand when looking at the microcode for Smalltalk on the
Dorado was that it spent quite a few microinstructions decoding the
bytecodes. But all the texts about it mention the special hardware that
the machine had to do this and how important this IFU was to getting
Smalltalk to run well. On possibility is that the code was there but got
skipped when the IFU was activated. It would be interesting to know
under what conditions the number that were cited for the Dorado were
obtained.

-- Jecel




More information about the Squeak-dev mailing list