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.763.778161470  0% 0% 0% 100%
1.4GNU gcc #4 5.195.193961221  0% 0% 0% 100%
1.4ATS 5.385.384322257  0% 0% 0% 100%
1.6C++ GNU g++ #4 6.066.077481266  0% 0% 0% 100%
2.0Java 6 -server #2 7.507.5112,2481240  0% 0% 0% 100%
2.1GNU gcc 7.947.944521185  0% 0% 0% 100%
2.2Pascal Free Pascal #4 8.128.122161112  0% 0% 0% 100%
2.3C# Mono #2 8.718.714,6241180  0% 0% 0% 100%
2.3Ada 2005 GNAT #4 8.738.731,3001623  0% 0% 0% 100%
2.6Scala 9.669.6612,8481207  0% 0% 0% 100%
2.6Fortran Intel 9.969.963961155  0% 0% 0% 100%
2.8Ada 2005 GNAT 10.3710.371,2281346  0% 0% 0% 100%
3.1OCaml #3 11.7911.807281042  0% 0% 0% 100%
3.3Lisp SBCL 12.4912.485,1881419  0% 0% 0% 100%
3.5Go 6g 8g 13.3213.326001058  0% 0% 0% 100%
3.8Clean 14.2014.201,5641420  0% 1% 0% 100%
3.8Lisp SBCL #2 14.3814.385,2321617  0% 0% 0% 100%
4.1Haskell GHC #2 15.5615.561,6801096  0% 0% 0% 100%
4.3Lua LuaJIT 16.3016.301,2001039  0% 0% 0% 100%
5.0F# Mono 18.8218.826,5161057  0% 0% 0% 100%
9.4Lua LuaJIT #2 35.2335.22884993  0% 0% 0% 100%
11JavaScript V8 #2 40.0840.0822,488923  0% 0% 0% 100%
13Smalltalk VisualWorks 47.4547.4512,7561171  0% 0% 0% 100%
14Erlang HiPE #2 51.1251.135,0481164  100% 0% 0% 0%
15Java 6 -Xint #2 55.7755.8110,1481240  0% 0% 0% 100%
16Lua 58.6558.651,1481039  0% 0% 0% 100%
17Scheme PLT 64.0064.007,7841053  0% 0% 0% 100%
18Scheme PLT #2 66.0866.089,2481055  0% 0% 0% 100%
18Lua #2 68.3868.38956993  0% 0% 0% 100%
22JavaScript V8 82.5382.525,972791  0% 0% 0% 100%
23Erlang HiPE 87.6987.694,9921039  0% 100% 0% 0%
53JavaScript TraceMonkey #2 201.05201.12105,256923  1% 1% 0% 100%
62Python CPython #2 235.18235.252,856779  1% 1% 0% 100%
64JavaScript TraceMonkey 242.39242.4581,784791  1% 0% 0% 100%
71PHP #3 266.23266.413,4121030  0% 1% 0% 100%
78Python 3 #2 295.05295.044,004788  0% 0% 0% 100%
82Mozart/Oz 5 min5 min3,7241168  0% 0% 0% 100%
93Perl #4 5 min5 min2,112934  0% 1% 0% 100%
118Ruby 1.9 #2 7 min7 min174,280732  0% 0% 0% 100%
139Ruby JRuby 8 min8 min242,212744  0% 0% 0% 100%
140Perl #2 8 min8 min2,116886  0% 0% 0% 100%
166Ruby MRI #2 10 min10 min245,848732  0% 0% 0% 100%
208PHP #2 13 min13 min3,3961007  0% 0% 0% 100%
Lisaac Make Error1463
interesting alternative programs
2.6OCaml 9.849.847321046
2.7OCaml #2 10.1010.09732984
2.8Haskell GHC #3 10.7010.701,6801406
48Ruby MRI #3 178.91178.9299,432848
74Perl 278.49278.472,096791
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