How big is the measured performance difference?

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

 fasta 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 fasta 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++ 3.783.788161470  99% 1% 0% 0%
1.4GNU gcc #4 5.185.193961221  100% 0% 0% 0%
1.4ATS 5.385.384322257  100% 0% 0% 0%
1.6C++ GNU g++ #4 6.076.077481266  100% 0% 0% 0%
2.0Java 6 -server #2 7.507.4912,6481240  0% 1% 99% 0%
2.1GNU gcc 7.947.944561185  100% 0% 0% 0%
2.1Pascal Free Pascal #4 8.128.122121112  0% 0% 0% 100%
2.3C# Mono #2 8.718.714,6281180  0% 0% 0% 100%
2.3Ada 2005 GNAT #4 8.738.731,3001623  0% 0% 100% 0%
2.5Scala 9.409.3713,1081207  0% 0% 1% 100%
2.6Fortran Intel 9.989.983961155  0% 0% 0% 100%
2.8Ada 2005 GNAT 10.4110.411,2281346  100% 0% 0% 0%
3.3Lisp SBCL 12.4812.485,1881419  0% 0% 0% 100%
3.4OCaml #3 12.8812.887281042  0% 93% 0% 0%
3.5Go 6g 8g 13.3113.316041058  0% 100% 0% 0%
3.7Clean 13.9113.911,5681420  0% 100% 0% 0%
3.8Lisp SBCL #2 14.3814.385,2281617  0% 0% 0% 100%
4.1Haskell GHC #2 15.5815.581,6801096  100% 0% 0% 0%
4.3Lua LuaJIT 16.3116.301,2001039  0% 0% 99% 0%
5.0F# Mono 18.8418.836,5121057  0% 0% 100% 0%
9.3Lua LuaJIT #2 35.3135.31884993  0% 100% 0% 0%
11JavaScript V8 #2 40.4140.4123,924923  10% 96% 0% 0%
12Smalltalk VisualWorks 47.1047.0912,7521171  0% 0% 0% 100%
14Erlang HiPE #2 52.5852.575,9441164  100% 0% 0% 0%
15Java 6 -Xint #2 55.8055.8410,1561240  0% 0% 100% 0%
16Lua 58.6358.631,1481039  0% 100% 0% 0%
17Scheme PLT 64.0464.057,7801053  0% 1% 0% 100%
18Scheme PLT #2 66.2266.239,2641055  0% 0% 100% 0%
18Lua #2 68.4268.43956993  0% 100% 0% 0%
22JavaScript V8 82.4582.455,972791  100% 0% 0% 0%
26Erlang HiPE 100.05100.045,8081039  0% 0% 0% 100%
52JavaScript TraceMonkey #2 197.41197.60106,252923  1% 0% 23% 76%
62Python CPython #2 234.29234.322,852779  4% 26% 37% 34%
63JavaScript TraceMonkey 238.75238.8581,908791  0% 3% 34% 64%
70PHP #3 264.03264.163,3961030  0% 0% 100% 1%
78Python 3 #2 294.57294.604,004788  1% 27% 73% 0%
83Mozart/Oz 5 min5 min4,3601168  17% 39% 17% 29%
90Perl #4 5 min5 min2,112934  100% 0% 0% 0%
115Ruby 1.9 #2 7 min7 min174,280732  1% 99% 0% 0%
139Ruby JRuby 8 min8 min200,928744  0% 8% 92% 0%
140Perl #2 8 min8 min2,112886  18% 33% 0% 50%
167Ruby MRI #2 10 min10 min245,868732  0% 41% 1% 58%
212PHP #2 13 min13 min3,4041007  0% 100% 0% 0%
Lisaac Make Error1463
interesting alternative programs
2.3OCaml 8.838.837321046
2.8Haskell GHC #3 10.6910.691,6841406
2.9OCaml #2 10.9911.00728984
47Ruby MRI #3 178.81178.82100,588848
72Perl 270.98270.992,104791
missing programs
Java 6 steady state No program

 fasta benchmark : Generate and write random DNA sequences

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

Each program should

We'll use the generated FASTA file as input for other benchmarks (reverse-complement, k-nucleotide).

Random DNA sequences can be based on a variety of Random Models (554KB pdf). You can use Markov chains or independently distributed nucleotides to generate random DNA sequences online.

Revised BSD license