"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.0C++ GNU g++ 1.22 
1.3GNU gcc 1.60 
1.6Ada 2005 GNAT 1.921
1.7Java 6 steady state 2.024
1.7ATS 2.101
1.8Java 6 -server 2.24 
2.2Haskell GHC 2.68 
2.4Scala 2.91 
3.0Fortran Intel 3.615
3.1Lisp SBCL 3.761
3.5OCaml 4.30 
3.5C# Mono 4.31 
4.7Pascal Free Pascal 5.741
4.8Clean 5.804
7.3F# Mono 8.943
8.4Go 6g 8g 10.25 
11Erlang HiPE 13.06 
13Java 6 -Xint 15.32 
14JavaScript V8 17.334
18Scheme PLT 21.81 
23Lua 27.642
25PHP 31.022
28Perl 34.361
29Python CPython 35.86 
33Smalltalk VisualWorks 40.183
60Ruby JRuby 73.53 
100Ruby MRI 122.59 
multipliers
Time secs
Memory KB
Code B
benchmarkweight
binary-trees

chameneos-redux

fannkuch

fasta

k-nucleotide

mandelbrot

meteor-contest

n-body

pidigits

regex-dna

reverse-complement

spectral-norm

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