"For every complex problem there is an answer that is clear, simple, and wrong."  H. L. Mencken

What fun! Increase the Code multiplier! Ignore Memory! Zero out those benchmarks that push your favourite language to the bottom!

Which balance between Code-used and Time-used and Memory-used is best for you? Zero out those benchmarks which are unlike what your programs do!

  ×   language implementation GM missing
1.0GNU gcc 1.12 
1.1C++ GNU g++ 1.29 
1.3GNU 1.441
1.3Digital Mars 1.47 
1.5Eiffel SmartEiffel 1.654
1.5Oberon-2 OO2C 1.656
1.5Pascal Free Pascal 1.67 
1.5Clean 1.703
1.7OCaml 1.892
1.7Tiny 1.963
1.8Java 1.4 -server 2.071
1.8SML MLton 2.072
1.9Java 6 -server 2.161
1.9SML SML/NJ 2.187
2.0Java 6 -client 2.202
2.0Ada 2005 GNAT 2.244
2.0Objective-C GNU 2.247
2.2Lisp SBCL 2.531
2.5Scala 2.81 
2.6C# Mono 2.87 
3.0Java GNU gcj 3.391
3.0Nice 3.425
3.2Fortran G95 3.554
3.7Haskell GHC 4.213
5.8Python Psyco 6.551
13Forth GNU GForth 14.112
13Erlang HiPE 14.602
13Pike 14.615
14OCaml (bytecode) 15.462
14Parrot PIR 15.514
17Java 6 -Xint 18.932
17Lua 18.972
18Python CPython 19.691
18Scheme PLT 19.743
19Scheme Chicken 21.037
19S-Lang 21.426
25Mozart/Oz 28.42 
26Perl 28.741
33Smalltalk GNU 37.032
34JavaScript JavaScriptCore 37.674
39Python IronPython 43.516
41JavaScript SpiderMonkey 46.243
57Tcl 63.822
61PHP 68.642
62Ruby MRI 70.26 
115Prolog SWI 129.085
multipliers
Time secs
Memory KB
Code B
benchmarkweight
binary-trees

chameneos-redux

fannkuch

fasta

k-nucleotide

mandelbrot

meteor-contest

n-body

nsieve

nsieve-bits

partial-sums

pidigits

recursive

regex-dna

reverse-complement

spectral-norm

startup

sum-file

thread-ring

 Which is best for you?


Which balance between Code-used and Time-used and Memory-used is best for you?


Read "How not to lie with statistics: the correct way to summarize benchmark results" (pdf).

For each benchmark, B is the best measurement; for each language implementation, the best measurement L is then normalized to L/B

GM is the Weighted Geometric Mean of those L/B ratios.

missing : Language implementations with more than a couple of Timeouts (at the largest workload) distort the ranking - so they have been excluded. They can still be compared directly against another language implementation.


There are other ways to analyse and present this data: ask Which programming languages have the fastest programs? or look for patterns in Code-used Time-used Shapes or take the Summary Data and do your own analysis!

Revised BSD license