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++ 2.262.269641470  1% 1% 0% 100%
2.3ATS 5.205.205122257  0% 0% 0% 100%
2.5GNU gcc #4 5.735.734721221  0% 0% 0% 100%
2.7C++ GNU g++ #4 6.136.139161266  0% 0% 0% 100%
2.9Ada 2005 GNAT #4 6.566.561,5761623  0% 0% 0% 100%
3.4Go 6g 8g 7.797.797641058  0% 0% 0% 100%
3.7GNU gcc 8.308.305361185  0% 0% 0% 100%
3.7Java 6 -server #2 8.338.3614,5801240  0% 0% 0% 100%
3.7C# Mono #2 8.408.405,2361180  0% 0% 0% 100%
3.8Fortran Intel 8.518.504881155  0% 0% 0% 100%
4.0Scala 9.169.1615,3681207  0% 0% 0% 100%
4.4Ada 2005 GNAT 10.0110.011,4961346  0% 0% 0% 100%
5.0Clean 11.4111.411,6241420  0% 0% 0% 100%
5.8Pascal Free Pascal #4 13.0913.082201112  0% 1% 0% 100%
6.0OCaml #3 13.6313.649961042  0% 0% 0% 100%
6.6Lisp SBCL 15.0015.006,8921419  0% 0% 0% 100%
7.0F# Mono 15.8315.837,5241057  0% 0% 0% 100%
7.1Lisp SBCL #2 16.0916.096,9041617  0% 0% 0% 100%
7.6Haskell GHC #2 17.2517.241,9041096  0% 0% 0% 100%
13Erlang HiPE #2 29.7129.717,9161164  0% 0% 0% 100%
18JavaScript V8 #2 41.3341.3328,980923  0% 0% 0% 100%
21Smalltalk VisualWorks 46.7946.7922,7161171  0% 0% 0% 100%
22Java 6 -Xint #2 49.4649.4612,0161240  0% 0% 0% 100%
23Lua 51.7351.731,4481039  0% 0% 0% 100%
25Scheme PLT 55.9355.938,8441053  0% 1% 0% 100%
26Erlang HiPE 58.8258.837,8441039  0% 0% 0% 100%
27Scheme PLT #2 60.4260.4112,6361055  0% 0% 0% 100%
28Lua #2 63.0663.111,136993  3% 1% 4% 100%
38JavaScript V8 87.0487.049,220791  0% 0% 0% 100%
60JavaScript TraceMonkey #2 135.74135.77104,772923  1% 0% 1% 100%
75Python CPython #2 168.68168.743,640779  1% 1% 1% 100%
86JavaScript TraceMonkey 193.81193.8280,636791  1% 1% 1% 100%
90PHP #3 204.50204.694,2561030  1% 0% 0% 100%
137Perl #4 5 min5 min2,548934  1% 1% 1% 100%
200Ruby JRuby 7 min7 min298,448744  1% 0% 0% 100%
218Perl #2 8 min8 min2,540886  0% 0% 0% 100%
283PHP #2 10 min10 min4,2441007  0% 0% 0% 100%
291Ruby MRI #2 10 min10 min197,640732  0% 0% 1% 100%
interesting alternative programs
5.3OCaml 11.9611.961,0001046
5.6OCaml #2 12.6312.631,000984
6.4Haskell GHC #3 14.4414.441,9361406
79Ruby MRI #3 177.96177.97102,268848
111Perl 251.02251.092,532791
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