How big is the measured performance difference?

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

 reverse-complement 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 reverse-complement 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++ #4 1.121.12245,4322275  1% 0% 1% 100%
1.1ATS 1.181.19122,6282077  1% 0% 1% 99%
1.2C++ GNU g++ #2 1.351.35245,0801098  0% 0% 1% 100%
1.2GNU gcc #4 1.381.38125,188722  0% 0% 2% 100%
1.5Ada 2005 GNAT #2 1.681.70197,5843132  1% 0% 1% 99%
1.6C++ GNU g++ #3 1.751.75125,272810  0% 0% 1% 100%
2.1Scala #4 2.372.39400,184505  0% 0% 0% 99%
2.1Pascal Free Pascal #2 2.392.39123,816751  0% 0% 0% 100%
2.6Java 6 -server #4 2.862.90473,280592  0% 1% 0% 99%
2.7C# Mono 3.043.04161,6841099  0% 0% 1% 100%
3.6Haskell GHC #2 4.024.02618,032913  0% 0% 0% 100%
3.8C++ GNU g++ 4.304.30245,388571  3% 6% 1% 100%
3.9Lisp SBCL 4.404.41222,396896  0% 0% 0% 100%
4.3OCaml #2 4.784.78168,920394  0% 0% 0% 100%
4.9Go 6g 8g 5.435.44160,392550  0% 0% 0% 100%
5.2Perl #4 5.805.80124,036237  0% 0% 1% 100%
6.3PHP #2 7.007.00444,456343  0% 0% 0% 100%
6.8Python CPython #3 7.557.55503,668288  0% 0% 0% 100%
6.9Ada 2005 GNAT 7.737.73130,676885  0% 0% 0% 100%
7.5C# Mono #3 8.368.36221,980863  0% 0% 0% 100%
8.8PHP 9.869.86370,000297  0% 0% 0% 100%
8.9Ruby MRI #2 9.959.96197,352255  0% 0% 0% 100%
9.3Ruby 1.9 #2 10.3610.36174,076255  0% 0% 0% 100%
10Fortran Intel #2 11.0911.09191,164772  0% 1% 0% 100%
12Lua LuaJIT 13.2513.25473,416538  0% 0% 0% 100%
17Ruby JRuby #2 19.1419.16430,192255  0% 0% 0% 100%
18Scheme PLT #2 20.2620.26383,808554  0% 0% 0% 100%
19Lua 21.5821.58532,160538  0% 0% 0% 100%
20Lua LuaJIT #3 22.5622.56154,068593  0% 0% 0% 100%
21Java 6 -Xint #4 23.2523.27471,280592  0% 0% 0% 100%
24Lua #3 26.4126.41153,044593  0% 0% 0% 100%
24Smalltalk VisualWorks 26.6326.62289,900754  0% 0% 0% 100%
25Scala #5 28.5028.50552,824358  0% 0% 0% 100%
28Python 3 #3 31.7531.751,057,588294  0% 0% 0% 100%
34Perl #2 37.7437.74404,204298  0% 0% 0% 100%
35JavaScript V8 #2 39.4039.40317,988456  0% 0% 0% 100%
37Perl 41.5941.58447,588299  0% 0% 0% 100%
40Erlang HiPE #4 44.7844.79620,7081167  100% 0% 0% 0%
55JavaScript TraceMonkey #2 61.5661.56893,416456  0% 0% 0% 100%
56Erlang HiPE #3 63.1262.94686,488624  0% 100% 0% 1%
74Mozart/Oz 82.9683.272,728,868651  1% 2% 2% 100%
Clean Timed Out1h 00 min834
Lisaac #2 Make Error762
OCaml #3 Failed582
OCaml Failed540
interesting alternative programs
 Perl #3 Bad Output  263
 Lisaac Failed  473
missing programs
F# Mono No program
Java 6 steady state No program

 reverse-complement benchmark : Read DNA sequences - write their reverse-complement

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

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

Each program should

We use these code complements:

code  meaning   complement
A    A                   T
C    C                   G
G    G                   C
T/U  T                   A
M    A or C              K
R    A or G              Y
W    A or T              W
S    C or G              S
Y    C or T              R
K    G or T              M
V    A or C or G         B
H    A or C or T         D
D    A or G or T         H
B    C or G or T         V
N    G or A or T or C    N

"by knowing the sequence of bases of one strand of DNA we immediately know the sequence of the DNA strand which will bind to it, this strand is called the reverse complement"
DNA: Structure and Function

Revised BSD license