Thue-Morse and performance: Squeak v.s. Strongtalk v.s. VisualWorks

Klaus D. Witzel klaus.witzel at
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  
something wrong?

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...
Name: Benchmark.dlt
Type: application/octet-stream
Size: 1361 bytes
Desc: not available
Url :

More information about the Squeak-dev mailing list