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.0GNU gcc #2 47.7647.76552937  0% 0% 0% 100%
1.0C++ GNU g++ #3 50.0150.011,1241186  0% 0% 0% 100%
1.1Fortran Intel 52.2652.26408521  0% 0% 0% 100%
1.2Pascal Free Pascal 58.7958.7948712  0% 0% 0% 100%
1.3OCaml 61.3761.37756485  0% 0% 0% 100%
1.3GNU gcc 63.7163.71488628  0% 0% 0% 100%
1.4ATS 66.5866.585081191  0% 0% 0% 100%
1.4Java 6 -server 66.7966.8313,7961150  0% 0% 0% 100%
1.4Java 6 steady state 67.6167.6114,7281232  0% 0% 0% 100%
1.4Clean 68.8868.88532925  0% 0% 0% 100%
1.5C++ GNU g++ #2 71.3271.321,092554  0% 0% 0% 100%
1.5Lisp SBCL #2 71.6871.685,104624  0% 0% 0% 100%
1.7Ada 2005 GNAT 82.7382.721,224746  0% 0% 0% 100%
1.8Java 6 -server #4 84.2484.2412,916555  0% 0% 0% 100%
2.3Scala #2 108.56108.5713,080473  0% 0% 0% 100%
2.3C# Mono 112.18112.185,044549  0% 0% 0% 100%
2.4Lua LuaJIT 113.11113.10856492  0% 0% 0% 100%
2.5Go 6g 8g 121.61121.60612523  0% 0% 0% 100%
2.6Ada 2005 GNAT #2 124.46124.551,7841518  1% 0% 0% 100%
2.8F# Mono #5 134.25134.246,792470  1% 1% 1% 100%
3.1Scala #3 148.91148.9533,1241001  0% 0% 0% 100%
3.2Haskell GHC #5 154.78154.774,0361204  0% 0% 0% 100%
3.3C# Mono #2 156.11156.105,2841085  0% 0% 0% 100%
3.6OCaml #2 174.34174.332,688975  0% 0% 0% 100%
3.7F# Mono #3 178.50178.497,032522  0% 0% 0% 100%
3.8F# Mono #4 180.60180.597,036497  0% 0% 0% 100%
11Scheme PLT #2 9 min9 min9,172549  0% 0% 0% 100%
12Smalltalk VisualWorks 9 min9 min12,724772  0% 0% 0% 100%
14Java 6 -Xint 11 min11 min10,3161150  0% 0% 0% 100%
15JavaScript V8 #2 11 min11 min8,088488  0% 0% 0% 100%
15Erlang HiPE #3 12 min12 min5,156864  0% 0% 100% 0%
17Java 6 -Xint #4 13 min13 min10,172555  0% 0% 0% 100%
30Haskell GHC #3 23 min23 min3,156341  0% 0% 0% 100%
34Scala 26 min26 min131,468453  0% 0% 0% 100%
35JavaScript TraceMonkey #2 27 min27 min2,396488  0% 0% 0% 100%
40Ruby JRuby #3 31 min31 min78,636340  0% 0% 0% 100%
42Lua 33 min33 min904492  0% 0% 0% 100%
66Perl #2 52 min52 min1,692391  0% 0% 0% 100%
87Mozart/Oz #2 1h 09 min1h 09 min4,452506  0% 1% 1% 100%
88Perl 1h 09 min1h 09 min1,648348  0% 0% 0% 100%
88Perl #3 1h 09 min1h 09 min6,000471  0% 0% 0% 100%
90Python CPython #2 1h 11 min1h 11 min2,812387  0% 0% 0% 100%
96Python 3 #2 1h 16 min1h 16 min3,964400  0% 0% 0% 100%
104Ruby 1.9 #4 1h 22 min1h 22 min3,020344  0% 7% 0% 100%
106PHP #3 1h 24 min1h 24 min9,112745  0% 0% 0% 100%
141Ruby MRI #3 1h 52 min1h 52 min1,884340  0% 0% 0% 100%
Erlang HiPE Timed Out1h 00 min594
Lisaac Make Error788
Ruby 1.9 #3 Bad Output340
interesting alternative programs
1.8C# Mono #3 86.4186.405,2561089
1.8Java 6 -server #3 86.4586.5012,084914

 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