How big is the measured performance difference?

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

 k-nucleotide benchmark ~240MB N=25,000,000

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

Compare how much Memory the k-nucleotide 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.0C++ GNU g++ #6 11.723.49140,4363415  78% 94% 81% 82%
1.6C++ GNU g++ #2 20.275.54177,1482673  99% 88% 90% 93%
2.4C++ GNU g++ #3 29.898.23176,5202313  98% 88% 88% 88%
2.6C++ GNU g++ 33.059.01176,6682106  89% 88% 89% 99%
3.4Ada 2005 GNAT #2 27.8911.89256,6924504  45% 75% 30% 84%
4.2Java 6 -server #2 49.2214.57480,4081602  79% 78% 98% 82%
7.3Java 6 -server 88.5025.671,568,6401330  85% 89% 85% 85%
7.9Scala #4 91.3927.61981,3361287  89% 79% 82% 79%
11ATS 36.7336.73125,8681336  100% 0% 0% 0%
11OCaml #2 88.2537.80574,5881205  41% 25% 81% 85%
11OCaml #3 94.1839.93476,9801095  79% 24% 87% 44%
16Haskell GHC #3 128.5856.53427,1282749  34% 72% 48% 42%
22GNU gcc #2 78.1778.171,702,4161141  0% 0% 100% 0%
22Perl 256.1578.582,883,780648  81% 71% 88% 84%
25Fortran Intel 86.8886.88229,9122238  0% 0% 100% 0%
26OCaml 91.0391.03496,616870  0% 0% 100% 0%
31C# Mono 108.42107.49560,9241420  0% 0% 0% 100%
33Python CPython #6 5 min114.57489,420520  48% 47% 92% 89%
35Lisp SBCL #3 121.38121.38348,6201284  0% 0% 100% 0%
36Clean 124.87124.872,097,7401511  0% 100% 0% 0%
36Pascal Free Pascal 126.78126.79129,8482380  0% 0% 0% 100%
37Pascal Free Pascal #2 125.95128.13129,8442383  1% 1% 96% 1%
38PHP #3 7 min131.69248,6961268  97% 89% 67% 79%
38Python CPython #5 6 min133.04489,424557  76% 46% 96% 66%
41GNU gcc 140.85144.81150,6121340  1% 5% 92% 0%
47C# Mono #3 6 min163.38496,1681404  94% 20% 14% 92%
49Erlang HiPE #3 7 min171.07711,560932  58% 71% 84% 60%
56C# Mono #2 197.24196.86524,6521012  1% 2% 56% 41%
58Lua #2 204.16204.16670,800613  0% 0% 0% 100%
59Lua 204.89206.26685,508601  98% 1% 1% 0%
66Erlang HiPE 8 min229.903,845,368930  60% 58% 55% 72%
67Scheme PLT 232.84233.181,298,832623  91% 3% 3% 2%
67Perl #2 229.45233.57780,232359  0% 1% 0% 98%
86Java 6 -Xint #2 17 min5 min336,4321602  85% 85% 88% 99%
87Go 6g 8g 5 min5 min379,480874  0% 96% 3% 0%
118Java 6 -Xint 25 min6 min787,5361330  92% 91% 99% 92%
122Lisp SBCL 7 min7 min382,300847  1% 96% 1% 2%
123PHP #2 7 min7 min222,736914  100% 0% 0% 0%
127JavaScript TraceMonkey 7 min7 min1,057,340423  98% 1% 1% 0%
132Python CPython 7 min7 min486,900475  1% 0% 99% 1%
143Ruby JRuby #2 8 min8 min534,384420  2% 33% 66% 2%
155JavaScript TraceMonkey #3 9 min9 min442,884390  0% 0% 48% 51%
244Ruby MRI #2 14 min14 min166,340420  0% 0% 100% 0%
Erlang HiPE #2 Failed997
Haskell GHC #2 Failed1767
JavaScript TraceMonkey #2 Bad Output400
JavaScript V8 Timed Out1h 00 min423
JavaScript V8 #2 Failed400
JavaScript V8 #3 Timed Out1h 00 min390
Lisp SBCL #4 Failed1434
Smalltalk VisualWorks Bad Output1191
Smalltalk VisualWorks #4 Bad Output1296
interesting alternative programs
0.8C++ GNU g++ #5 7.922.7349,5403416
missing programs
F# Mono No program
Java 6 steady state No program

 k-nucleotide benchmark : Hashtable update and k-nucleotide strings

diff program output for this 100KB input file (generated with the fasta program N = 10000) with this output file to check your program is correct before contributing.

We use FASTA files generated by the fasta benchmark as input for this benchmark. Note: the file may include both lowercase and uppercase codes.

Each program should

In practice, less brute-force would be used to calculate k-nucleotide frequencies, for example Virus Classification using k-nucleotide Frequencies and A Fast Algorithm for the Exhaustive Analysis of 12-Nucleotide-Long DNA Sequences. Applications to Human Genomics (105KB pdf).

Revised BSD license