How big is the measured performance difference?

Each chart bar shows how many times more Time or how many times more Memory one unidentified ↓ fannkuch program used, compared to the program that used least Time or the program that used least Memory.

 fannkuch benchmark N=12

This table shows 5 measurements - CPU Time, Elapsed Time, Memory, Code and ~ CPU Load.

Compare how much Memory the fannkuch programs used - sort Memory KB. Compare how much Code the programs used - sort Code B

Column × shows how many times more each program used compared to the program that used least.

    sort sort sort sort
  ×   Program Source Code CPU secs Elapsed secs Memory KB Code B ~ CPU Load
1.0Ada 2005 GNAT #2 38.189.672,0681518  99% 98% 99% 99%
1.3GNU gcc #2 51.4312.97700937  99% 99% 99% 100%
1.4C++ GNU g++ #3 49.7513.741,3001186  80% 76% 100% 100%
2.0Java 6 -server 68.4719.0917,5841150  81% 97% 74% 99%
2.1Java 6 steady state 74.5020.5618,7041232  79% 78% 99% 100%
2.2Haskell GHC #5 81.8621.044,4241204  95% 95% 95% 94%
2.5Scala #3 88.8023.89268,9801001  92% 93% 90% 95%
4.1C# Mono #2 147.0339.676,3961085  85% 100% 95% 89%
4.8OCaml #2 181.6446.676,288975  99% 96% 99% 97%
5.1Fortran Intel 49.2049.19464521  0% 0% 100% 0%
5.6Lisp SBCL #2 53.6653.666,748624  0% 0% 100% 0%
6.2ATS 59.9059.905921191  100% 0% 0% 0%
6.6OCaml 63.5063.49928485  3% 0% 0% 97%
6.9Clean 66.3666.36620925  0% 0% 100% 0%
7.0GNU gcc 67.8667.86584628  100% 0% 0% 0%
7.0C++ GNU g++ #2 67.9967.991,228554  0% 100% 0% 0%
7.6Java 6 -server #4 73.7673.6915,888555  0% 0% 100% 0%
9.4Scala #2 91.2291.1816,236473  0% 0% 100% 0%
9.5Ada 2005 GNAT 91.6591.651,500746  100% 0% 0% 0%
12Go 6g 8g 117.55117.54772523  0% 0% 0% 100%
13C# Mono 123.48123.475,756549  100% 0% 0% 0%
13Pascal Free Pascal 130.04130.0352712  0% 0% 0% 100%
15F# Mono #5 143.71143.728,076470  0% 0% 100% 0%
18Java 6 -Xint 10 min173.7012,2481150  80% 99% 77% 99%
19Erlang HiPE #3 12 min187.209,536864  95% 95% 100% 99%
23F# Mono #4 219.34219.408,104497  99% 0% 0% 0%
23F# Mono #3 219.62219.648,300522  84% 0% 15% 0%
56Scheme PLT #2 9 min9 min12,432549  43% 57% 0% 0%
70Smalltalk VisualWorks 11 min11 min22,764772  0% 0% 100% 0%
72JavaScript V8 #2 11 min11 min9,260488  0% 0% 100% 0%
82Java 6 -Xint #4 13 min13 min12,032555  0% 0% 0% 100%
98Perl #3 1h 02 min15 min8,808471  99% 100% 100% 100%
114PHP #3 1h 12 min18 min25,900745  100% 99% 100% 100%
137Scala 22 min22 min394,328453  0% 34% 59% 7%
145Haskell GHC #3 23 min23 min3,448341  0% 0% 0% 100%
185Ruby JRuby #3 30 min29 min220,648340  65% 1% 1% 33%
192Lua 30 min30 min1,076492  0% 0% 0% 100%
233JavaScript TraceMonkey #2 37 min37 min2,688488  14% 51% 34% 0%
277Perl #2 44 min44 min2,056391  9% 0% 91% 0%
324Erlang HiPE 52 min52 min9,224594  0% 0% 100% 0%
346Python CPython #2 55 min55 min3,580387  0% 0% 100% 0%
404Perl 1h 05 min1h 05 min1,980348  0% 0% 100% 0%
697Ruby MRI #3 1h 52 min1h 52 min2,584340  0% 0% 0% 100%
interesting alternative programs
2.4C# Mono #3 84.0923.246,4201089
5.0Java 6 -server #3 48.4748.4614,512914

 fannkuch benchmark : Indexed-access to tiny integer-sequence

diff program output N = 7 with this output file to check your program is correct before contributing.

Each program should

The conjecture is that this maximum count is approximated by n*log(n) when n goes to infinity.

FANNKUCH is an abbreviation for the German word Pfannkuchen, or pancakes, in analogy to flipping pancakes."


The fannkuch benchmark is defined in Performing Lisp Analysis of the FANNKUCH Benchmark, Kenneth R. Anderson and Duane Rettig (26KB postscript)

Revised BSD license