links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
FAQ: Speed
Last updated at 9:08 pm UTC on 22 March 2017
Roughly speaking, how fast is Squeak?

(See Maximum Squeak for tips on how to improve the speed of Squeak.)

For this page it was always what is now included as #tinyBenchmarks - runnable from the 'About Squeak’ window. It’s not a very meaningful benchmark to be honest, but it gives an idea of the speed.


RaspberryPi 3

Tim Rowledge (ML Thu, Jan 19, 2017)
On the Raspberry Pi3 with a CogSpur VM we get 280M bc/sec and 16M sends/sec. It’s interesting to look back at the ~10 year old results below for then-new expensive machine and see them well beaten by a $35 ‘toy’.


Intel(R) Core(TM) i5 CPU M 520 @ 2.40GHz
unix linux-gnu x86_64
1,800,000,000 bytecodes/sec; 110,000,000 sends/sec

2014 iMac 3.4GHz intel core i7
2,400,000,000 bytecods/sce, 180,000,000 sends/sec

2007 and earlier

Here are some benchmarks. Note that benchmark numbers for Squeak on some platforms can be different depending on whether the VM preference "Reduce CPU usage" is enabled or disabled.

Remark: if you want to post your benchmark here, please:
(non-binding suggestions by Cees de Groot)

Philosophical thought: so my box runs an interpreted VM at 190MIPS. That used to be a supercomputer. Now, what use are we going to make of that speed?

Windows NT4, SP5

PII/300MHz - Squeak 2.5 VM build 6 [6 Sep 1999]825,00013,850,000
PII/300MHz - Squeak 2.6 VM rb1 [18 Oct 1999] – using the updated "standard" #tinyBenchmarks809,00013,980,000
PII/400MHz - Squeak 2.5 VM [30 Aug 1999]1,081,00017,550,000
PII/400MHz - Squeak 2.6 VM rb1 [18 Oct 1999] – using the updated "standard" #tinyBenchmarks1,058,00018,470,000
[Note: standard Squeak benchmarks were adjusted to run for several seconds total: "28 benchFib" became "32 benchFib" and "1 benchmark" became "200 benchmark" in #tinyBenchmarks; I'm seeing rather inconsistent and unreasonable values of bytecodes/sec when I use the shorter running standard values]Dwight Hughes

Göran Krampe I can top that...
[Paolo Bonzini notes: well, if you multiply the result by 3/5, thus "normalizing" it to 300 MHz, you get roughly the same numbers as above. This page is not about "Look, I have this stunning $100,000 machine, Squeak running on it is faster than VW on a 486!"; it is about "how fast is Squeak on different architectures and comparable clocks" and about "How fast is it on a reference machine, in comparison to other interpreters". Results for PII/400MHz and Athlon/500MHz are completely useless IMHO]

Göran Krampe I was only kidding, I agree with you fully. But it is also interesting to see how well different hardware performs, especially if you are wondering how much faster an Athlon really is. :-)


300MHz K6-2, Squeak 2.7 VM/image713,21512,588,512Lex Spoon
Athlon XP2600+, Squeak 3.4-15,812,948188,289,295Cees de Groot
Pentium-M 1.5 Ghz (bogomips 2957), Squeak 3.7b-5, LunarLinux/2.6.7/GCC3.3.3/a bunch of optimizations 6,580,566218,069,362Goran Krampe
Pentium-M 1.5 Ghz (bogomips 2957), GNU-Smalltalk 2.1e (no JIT AFAICT), LunarLinux/2.6.7/GCC3.3.3/same optimizations as Squeak5,860,785 117,458,132Goran Krampe
600MHz Pentium III (bogomips 1193), Squeak 3.21,637,88654,872,936JecelAssumpcaoJr
Pentium4(HT) 3.0 GHz (bogomips 12206.08), GNU Smalltalk 2.1.10 (JIT) MandrakeLinux 10/kernel-2.6.8/GCC-3.3.212,925,981811,089,108V.Krishnakumar
Pentium4(HT) 3.0 GHz (bogomips 12206.08), GNU Smalltalk 2.1g (no JIT+ -O3) MandrakeLinux 10/kernel-2.6.8/GCC-3.3.25,563,724 85,992,610V.Krishnakumar


Pentium/150 MHz - Squeak 3.8alpha (5976), 3.6-3 VM

AMD Athlon 1100MHZ - Squeak 3.6-5429

Windows 2000

Celeron/300MHz - Squeak 2.8 ChangeSet 2299 newest VM [6 Jun 2000] (Andreas Kuckartz)

Pentium 1.7Ghz - Squeak 3.1 alpha of 4 February 2001 [latest update: #3641]
Beno”t St-Jean: 

Pentium 4 2.4GHz - Squeak 3.5alpha [latest update: #5168]Frank Shearar

Pentium 4 2.4GHz - Squeak 3.8alpha [latest update: #5976]Frank Shearar

AMD Ahtlon 64 3000+ - Squeak3.7beta [latest update: 5969]NameSpaces

Windows XP

Pentium M / 1.7Ghz - Squeak 3.6-5429


292 MHz G3, Squeak 2.5 VM (as of Aug 31, 1999):
John Maloney

Mac OS X 10.0.3

400MHz PB G3, Squeak 3.0 Carbon VM on MacOSX

400MHz PB G3, Squeak 3.0 Cocoa VM on MacOSX

400 MHz PB G3, Squeak 3.0 Classic VM on MacOSX (Classsic Env)

(Don't take the differences too serious as the results vary on every run within that variance anyway, but measuring in native OS9 would be interesting though ...)

500 MHz G3, Squeak 2.9alpha VM (as of Aug 7, 2000):

500 Mhz G4, MacOS 9.1, Squeak 3.0alpha16VM (as of 4 Jun 2001):

500 Mhz G3, Squeak 3.5.1b3 VM (June 2003) (os-x 10.2.6)

1.8 ghz G5 (10.3):


800 Mhz G4, MacOSX 10.1.5, Squeak3.2gamma of 15 January 2002 [latest update: #4913] Squeak VM 3.2.8b8

800 Mhz G4 iBook, MacOSX 10.3.4, Squeak3.6-5429

1 Ghz G4 powerbook, MacOSX 10.2.2, Squeak3.4.0.beta2 vm with Squeak3.4beta [latest update: #5138]


J3 JITter (Just-In-Time) VM for Squeak
450 Mhz G4


275MHz StrongARM in Corel NetWinder

206MHz SA110 in seven year old (1995 vintage) Acorn RPC, 16MHz memory tram (its too slow to be a bus)

600MHz XScale 80321
Tim Rowledge

206MHz StrongARM SA-1100 in Compaq iPAQ 3660 (aka 3670)
Helge Horch


25MHz SPARCstation IPX, Squeak 2.6 :-)
Hans-Martin Mosner - no, Morphic isn't exciting on that machine...

277MHz Ultra 5 (UltraSparc IIi), Squeak 3.6


SGI O2 MIPS R5000 200 MHZ IP32 Processor Squeak 2.5
Obviously, someone should update the IRIX VM

Speeds of other Smalltalks

For comparison I also ran the same adjusted benchmarks on some other Smalltalks, all on WinNT4Wsp5.

Dolphin Smalltalk Version 2.1: a modestly optimized bytecode interpreter VM (non-translating).

VisualWorks 3.0 NonCommercial – translating VM, therefore no bytecodes are actually being run, but the performance ratio should be reasonably valid.

Smalltalk MT VC 1.5 Evaluation Version – a fully compiled Smalltalk. AFAIK there is no dynamic translation being done (and certainly no bytecodes being run). Yes, those numbers are correct - whether they are also meaningful or not is another matter.

Dwight Hughes

GNU Smalltalk Version 1.95.4 – pretty optimized but non-translating bytecode interpreter

and here is the JIT in version 1.96 (alpha)

Paolo Bonzini

Self 4.2.1