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  100% 0% 1% 0%
2.3ATS 5.195.195082257  0% 2% 98% 1%
2.5GNU gcc #4 5.745.734761221  0% 0% 100% 0%
2.7C++ GNU g++ #4 6.136.139121266  100% 0% 0% 0%
2.9Ada 2005 GNAT #4 6.546.551,5761623  0% 0% 0% 100%
3.4Go 6g 8g 7.797.797601058  0% 100% 0% 0%
3.6Java 6 -server #2 8.248.2215,1441240  0% 1% 0% 100%
3.7GNU gcc 8.318.305401185  0% 0% 100% 0%
3.7C# Mono #2 8.408.405,2281180  0% 100% 0% 0%
3.8Fortran Intel 8.548.544881155  0% 0% 99% 0%
4.0Scala 8.989.0116,0481207  95% 0% 0% 5%
4.4Ada 2005 GNAT 9.959.951,4961346  0% 0% 100% 0%
5.0Clean 11.4111.411,6241420  0% 0% 100% 0%
5.8Pascal Free Pascal #4 13.0813.082201112  0% 0% 99% 0%
6.1OCaml #3 13.8213.821,0001042  0% 0% 100% 0%
6.6Lisp SBCL 15.0015.006,8881419  0% 0% 0% 100%
7.0F# Mono 15.9415.947,4681057  0% 100% 0% 0%
7.1Lisp SBCL #2 16.0916.106,9041617  99% 0% 0% 0%
7.6Haskell GHC #2 17.2517.251,9041096  0% 0% 100% 0%
13Erlang HiPE #2 30.0130.019,2001164  100% 1% 1% 1%
18JavaScript V8 #2 41.2341.2428,980923  0% 100% 0% 0%
21Smalltalk VisualWorks 47.2847.2722,7121171  0% 100% 0% 0%
22Java 6 -Xint #2 49.2749.2712,0241240  100% 0% 0% 0%
23Lua 51.7251.721,4481039  0% 0% 100% 0%
25Scheme PLT 56.0856.098,8441053  100% 0% 0% 0%
27Scheme PLT #2 60.4660.4512,6401055  4% 100% 3% 2%
29Lua #2 65.6165.601,140993  1% 3% 3% 100%
30Erlang HiPE 69.0269.029,0961039  99% 0% 0% 0%
39JavaScript V8 87.2087.209,220791  0% 0% 100% 0%
60JavaScript TraceMonkey #2 135.09136.49104,300923  30% 21% 24% 28%
74Python CPython #2 167.44167.513,640779  44% 29% 28% 1%
88JavaScript TraceMonkey 198.73198.8580,216791  16% 18% 31% 36%
89PHP #3 202.35202.354,2521030  0% 0% 100% 0%
139Perl #4 5 min5 min2,548934  100% 0% 0% 0%
201Ruby JRuby 7 min7 min311,544744  26% 23% 18% 34%
212Perl #2 8 min8 min2,536886  0% 100% 0% 0%
289PHP #2 10 min10 min4,2441007  49% 0% 0% 50%
289Ruby MRI #2 10 min10 min197,644732  0% 1% 0% 100%
interesting alternative programs
5.3OCaml 11.9611.961,0001046
5.6OCaml #2 12.6312.631,000984
6.4Haskell GHC #3 14.4514.451,9361406
79Ruby MRI #3 177.95177.96102,272848
111Perl 250.74250.762,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