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.340.92245,4402275  68% 50% 14% 15%
1.3C++ GNU g++ #2 1.871.16245,0961098  88% 32% 22% 22%
1.3ATS 1.191.19122,6282077  0% 0% 2% 100%
1.5Ada 2005 GNAT #2 1.721.34197,5843132  38% 3% 0% 90%
1.5GNU gcc #4 1.371.37125,192722  100% 1% 1% 1%
1.9C++ GNU g++ #3 1.761.76125,272810  100% 0% 1% 0%
2.5Scala #4 2.402.34400,424505  2% 3% 2% 97%
2.6Pascal Free Pascal #2 2.422.42122,792751  100% 1% 0% 0%
3.2Java 6 -server #4 2.982.94473,712592  1% 94% 4% 2%
3.3C# Mono 3.043.05161,7201099  1% 0% 100% 0%
4.4Haskell GHC #2 4.004.00618,012913  0% 0% 0% 100%
4.7C++ GNU g++ 4.294.29245,384571  100% 0% 0% 0%
4.8Lisp SBCL 4.424.41227,408896  100% 0% 0% 0%
5.2OCaml #2 4.784.78168,924394  100% 0% 0% 0%
5.9Go 6g 8g 5.445.44160,388550  0% 99% 1% 0%
6.3Perl #4 5.785.79124,036237  0% 0% 0% 100%
7.7PHP #2 7.097.09444,444343  0% 0% 0% 100%
8.3Python CPython #3 7.647.64538,340288  100% 0% 0% 0%
8.3Ada 2005 GNAT 7.647.65130,268885  0% 0% 100% 0%
8.3C# Mono #3 8.747.66211,284863  5% 5% 99% 5%
11PHP 9.769.77369,992297  0% 0% 100% 0%
11Ruby MRI #2 10.0910.09197,348255  0% 98% 0% 0%
11Ruby 1.9 #2 10.3710.36174,080255  100% 0% 0% 0%
12Fortran Intel #2 11.2611.26166,568772  0% 0% 0% 100%
14Lua LuaJIT 13.2513.25398,640538  100% 0% 0% 0%
20Ruby JRuby #2 20.1818.27467,396255  7% 6% 91% 7%
22Scheme PLT #2 20.4920.49383,816554  100% 0% 0% 0%
24Lua 21.9021.90517,760538  100% 0% 0% 0%
25Lua LuaJIT #3 22.6422.63154,064593  100% 0% 0% 0%
25Java 6 -Xint #4 22.9122.92471,268592  0% 0% 100% 0%
28Lua #3 25.9625.97153,044593  43% 57% 0% 0%
29Smalltalk VisualWorks 26.6926.69289,904754  100% 0% 0% 0%
32Scala #5 30.4629.69554,084358  2% 1% 2% 98%
35Python 3 #3 31.8331.831,021,976294  0% 100% 0% 0%
41Perl #2 37.7337.73411,880298  0% 0% 0% 100%
43JavaScript V8 #2 39.4939.49317,988456  0% 0% 0% 100%
46Perl 42.0142.01447,592299  0% 0% 100% 0%
50Erlang HiPE #4 55.4845.64626,1361167  9% 7% 79% 26%
67JavaScript TraceMonkey #2 61.4961.49894,528456  0% 0% 100% 0%
75Erlang HiPE #3 70.8768.74693,564624  3% 0% 99% 0%
97Mozart/Oz 84.9689.062,993,976651  44% 22% 24% 18%
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