Thue-Morse and performance: Squeak v.s. Strongtalk v.s. VisualWorks
Klaus D. Witzel
klaus.witzel at cobss.com
Sun Dec 17 09:24:21 UTC 2006
I'm sorry to tell that Strongtalk is NOT that fast. I followed the
instructions and *compiled* the following benchmark in Strongtalk,
evaluated the same expression in Squeak and in VW and got the these
results on my 1.73GHz 1.0GB WinXP notebook:
- VisualWorks: 16799 (N.C. 7.4.1)
- Strongtalk: 47517 (1.1.2)
- Squeak: 56726 (3.9#7056)
Below is the Squeak/VW source code, attached is the Strongtalk source
code. The test is simple: a long loop around a single polymorphic call
site "(instances at: i) yourself", straight forward inlineable and with
intentionally unpredictable type information at the call site (modeled
after the Thue-Morse sequence).
I'm disappointed, Strongtalk was always advertised as being the fastest
Smalltalk available "...executes Smalltalk much faster than any other
Smalltalk implementation...", and now it shows to be in almost the same
class as Squeak is :) :(
Can somebody reproduce the figures, any other results? Have I done
BTW: congrats to the implementors of Squeak and, of course, to Cincom!
(uhm, and also to the Strongtalk team!)
| instances base |
base := (Array
with: OrderedCollection basicNew
with: SequenceableCollection basicNew
with: Collection basicNew
with: Object basicNew) ,
with: Character space
with: Date basicNew
with: Time basicNew
with: Magnitude basicNew).
instances := OrderedCollection with: (base at: 1).
2 to: base size do: [:i |
instances := instances , instances reverse.
instances addLast: (base at: i)].
instances := (instances , instances reverse) asArray.
^ Time millisecondsToRun: [
1234567 timesRepeat: [
1 to: instances size do: [:i |
(instances at: i) yourself]]]
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 1361 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20061217/1a71430f/Benchmark.obj
More information about the Squeak-dev