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 50.5412.88552937  98% 100% 98% 98%
1.1C++ GNU g++ #3 49.6113.631,1601186  81% 77% 100% 100%
1.4Java 6 -server 66.2618.4313,7761150  78% 77% 98% 99%
1.4Java 6 steady state 67.4318.5914,6081232  81% 77% 99% 99%
2.4Ada 2005 GNAT #2 124.5231.291,7921518  99% 99% 100% 100%
2.8Scala #3 132.5736.01105,4761001  90% 91% 94% 91%
3.1Haskell GHC #5 156.6640.064,0401204  96% 96% 96% 96%
3.5C# Mono #2 162.9844.485,5841085  82% 79% 100% 100%
3.6OCaml #2 178.7946.774,004975  93% 100% 94% 95%
4.1Fortran Intel 52.2652.26408521  0% 100% 0% 0%
4.6Pascal Free Pascal 58.7958.7848712  0% 100% 0% 0%
4.8OCaml 61.4261.42760485  0% 100% 0% 0%
4.9GNU gcc 63.7363.73488628  0% 100% 0% 0%
5.2ATS 66.6366.635081191  100% 0% 0% 0%
5.4Clean 69.0869.09532925  0% 100% 0% 0%
5.5C++ GNU g++ #2 71.3371.331,092554  0% 0% 0% 100%
5.6Lisp SBCL #2 71.6971.695,100624  0% 0% 0% 100%
6.3Java 6 -server #4 80.8880.7513,144555  0% 100% 0% 0%
6.4Ada 2005 GNAT 82.7482.731,224746  0% 0% 0% 100%
8.4Scala #2 108.49108.4713,256473  0% 0% 0% 100%
8.7C# Mono 112.21112.205,044549  0% 0% 0% 100%
8.8Lua LuaJIT 113.19113.19860492  0% 0% 100% 0%
9.4Go 6g 8g 121.65121.65608523  31% 0% 0% 69%
10F# Mono #5 134.25134.246,796470  0% 0% 0% 100%
14F# Mono #3 178.22178.207,040522  0% 0% 0% 100%
14Java 6 -Xint 11 min184.9810,3081150  81% 78% 100% 96%
17F# Mono #4 222.26222.357,036497  77% 23% 0% 0%
17Erlang HiPE #3 14 min223.036,276864  95% 97% 98% 98%
42Scheme PLT #2 9 min9 min9,176549  0% 0% 100% 0%
48Smalltalk VisualWorks 10 min10 min12,724772  0% 1% 0% 100%
56JavaScript V8 #2 12 min12 min8,088488  0% 100% 0% 0%
66Java 6 -Xint #4 14 min14 min10,184555  0% 0% 0% 100%
83Perl #3 1h 10 min17 min6,020471  99% 99% 99% 100%
97PHP #3 1h 22 min20 min17,580745  99% 100% 100% 100%
111Haskell GHC #3 23 min23 min3,164341  1% 99% 0% 0%
126Scala 27 min27 min169,452453  13% 2% 6% 80%
130JavaScript TraceMonkey #2 27 min27 min2,400488  0% 0% 0% 100%
146Ruby JRuby #3 31 min31 min92,472340  12% 6% 34% 48%
156Lua 33 min33 min904492  100% 0% 0% 0%
321Perl #2 1h 08 min1h 08 min1,696391  51% 35% 14% 0%
323Mozart/Oz #2 1h 09 min1h 09 min4,564506  0% 0% 100% 0%
324Perl 1h 09 min1h 09 min1,648348  6% 94% 0% 0%
338Python CPython #2 1h 12 min1h 12 min2,812387  100% 0% 0% 0%
379Python 3 #2 1h 21 min1h 21 min3,964400  21% 0% 0% 79%
390Ruby 1.9 #4 1h 15 min1h 23 min3,016344  3% 97% 0% 0%
526Ruby MRI #3 1h 52 min1h 52 min1,888340  0% 100% 0% 0%
Erlang HiPE Timed Out1h 00 min594
Lisaac Make Error788
Ruby 1.9 #3 Bad Output340
interesting alternative programs
1.9C# Mono #3 87.3824.165,4361089
6.7Java 6 -server #3 86.2186.2012,112914

 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