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.210.85245,6442275  37% 13% 80% 14%
1.2Ada 2005 GNAT #2 1.190.98197,8683132  41% 63% 21% 0%
1.2C++ GNU g++ #2 1.301.01245,2601098  98% 10% 12% 9%
1.2ATS 1.041.04122,6962077  0% 0% 0% 100%
1.7C++ GNU g++ #3 1.401.41125,420810  100% 0% 1% 0%
1.7GNU gcc #4 1.441.44125,276722  100% 0% 1% 0%
2.5Go 6g 8g 2.132.13160,664550  0% 100% 0% 1%
2.7Scala #4 2.372.31403,140505  97% 0% 2% 3%
3.0OCaml #3 2.552.56388,264582  100% 0% 0% 0%
3.1Haskell GHC #2 2.652.65618,196913  0% 1% 0% 100%
3.1Java 6 -server #4 2.712.67475,908592  3% 1% 94% 3%
3.2Lisp SBCL 2.732.74252,700896  1% 100% 0% 1%
3.3C# Mono 2.822.83162,1921099  0% 1% 99% 0%
3.5OCaml 2.992.99485,108540  0% 100% 0% 1%
3.7C++ GNU g++ 3.193.19245,528571  100% 0% 1% 0%
4.7Pascal Free Pascal #2 4.024.03122,892751  0% 0% 100% 0%
5.5OCaml #2 4.704.70209,724394  100% 0% 0% 0%
6.2Perl #2 5.255.25431,496298  100% 0% 0% 0%
6.3Perl #4 5.345.35124,368237  0% 100% 0% 0%
6.6PHP #2 5.605.60445,220343  9% 0% 100% 4%
7.0Ada 2005 GNAT 5.965.97127,540885  0% 0% 100% 0%
7.4Python CPython #3 6.286.28565,856288  0% 0% 0% 100%
7.9Fortran Intel #2 6.696.70191,036772  0% 0% 100% 0%
8.9C# Mono #3 8.687.61263,264863  4% 6% 100% 5%
9.6PHP 8.158.15370,760297  0% 0% 100% 0%
10Ruby MRI #2 8.508.50246,712255  0% 0% 100% 0%
21Ruby JRuby #2 19.8218.26504,052255  5% 42% 6% 55%
23Lua 19.1719.17538,784538  0% 0% 100% 0%
23Scheme PLT #2 19.2519.24465,884554  100% 0% 0% 0%
25Lua #3 21.6421.65155,716593  0% 0% 0% 100%
29Scala #5 25.5924.88712,664358  2% 97% 2% 2%
32Java 6 -Xint #4 27.0927.16473,140592  0% 100% 0% 0%
36Smalltalk VisualWorks 30.9130.92299,944754  0% 0% 0% 100%
46JavaScript V8 #2 38.7338.73367,348456  0% 100% 0% 0%
47Erlang HiPE #4 50.2140.27630,1081167  7% 27% 38% 52%
52Perl 44.4044.40398,300299  96% 5% 0% 2%
52JavaScript TraceMonkey #2 44.4944.491,377,688456  100% 0% 0% 0%
74Erlang HiPE #3 66.1062.92815,212624  1% 25% 0% 78%
Clean Failed834
interesting alternative programs
 Perl #3 Bad Output  263
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