/mobile Handheld Friendly website

 regex-dna benchmark ≈50MB N=5,000,000

Each chart bar shows how many times slower, one ↓ regex-dna program was, compared to the fastest program.

These are not the only programs that could be written. These are not the only compilers and interpreters. These are not the only programming languages.

Column × shows how many times more each program used compared to the benchmark program that used least.

    sort sortsort
  ×   Program Source Code CPU secs Elapsed secs Memory KB Code B ≈ CPU Load
1.0C gcc 5.762.50292,1282579  69% 68% 49% 46%
1.6C++ g++ #2 5.834.10173,632695  0% 60% 82% 0%
2.2C++ g++ 5.375.38203,344648  1% 0% 0% 100%
2.2C++ g++ #4 17.055.42113,5921759  70% 92% 97% 58%
2.3Ada 2005 GNAT #5 17.855.6797,9883492  77% 69% 93% 77%
2.5Ada 2005 GNAT #6 18.706.16100,2323740  63% 69% 72% 100%
2.5C gcc #4 18.796.1786,2361525  74% 68% 100% 64%
2.7ATS #2 24.956.67221,1123474  94% 96% 92% 94%
3.4Java 7  #5 24.828.55709,672929  65% 82% 65% 79%
3.7OCaml #4 1.459.20264,7041050  84% 85% 86% 99%
3.8Haskell GHC #2 36.539.58248,7721518  95% 97% 95% 96%
4.4OCaml 19.3410.96511,6761502  26% 27% 87% 38%
4.4OCaml #3 19.3410.97511,6841014  26% 88% 26% 38%
4.5Perl #2 30.7511.21141,108527  49% 70% 76% 80%
5.2Python 3 26.3412.88255,724478  41% 33% 99% 32%
5.3Java 7  #2 41.5913.25734,2081534  81% 81% 79% 74%
5.6Ruby 2.0 #3 30.6713.88290,688501  41% 89% 41% 50%
6.2Scala #2 34.0115.48980,808668  39% 77% 61% 43%
6.6C++ g++ #3 27.6416.45179,596844  68% 2% 64% 35%
7.5Ruby JRuby #2 46.9718.762,039,392417  71% 70% 59% 51%
7.5Ruby JRuby #3 46.8818.772,040,348501  68% 82% 46% 54%
7.6OCaml #2 18.8518.88555,452615  0% 0% 100% 0%
7.9Go #8 65.0819.87469,876785  77% 75% 76% 99%
8.6F# Mono 67.2221.571,394,136639  92% 75% 69% 77%
8.7Python 3 #5 21.7721.78208,944424  0% 0% 0% 100%
8.7Lisp SBCL #3 45.4221.81818,6281948  41% 39% 89% 41%
8.8Java 7  #7 22.4321.92560,3281284  1% 0% 100% 2%
9.4Java 7  #4 24.9323.58820,540921  2% 2% 2% 99%
9.5C gcc #2 23.6823.70124,7601099  78% 0% 0% 22%
9.6F# Mono #3 68.7623.913,166,244870  64% 75% 82% 67%
9.9ATS 24.6624.68167,3082482  0% 0% 0% 100%
10Clojure #3 49.7325.08554,628710  44% 32% 40% 82%
12C# Mono #6 69.8829.79571,500638  76% 47% 63% 50%
12Ruby 2.0 #2 30.2330.25393,916417  8% 32% 33% 27%
14Scala 39.0434.86805,252611  4% 5% 4% 99%
14PHP #3 35.8035.82222,432459  0% 0% 0% 100%
16Racket 41.0841.09677,072527  90% 10% 0% 0%
17Ruby 2.0 43.4843.51389,532308  0% 96% 4% 0%
19Erlang HiPE #6 182.8147.68337,0961058  92% 96% 99% 97%
20PHP #2 50.4550.48215,200449  0% 0% 0% 100%
23Erlang #6 179.8857.58301,5441058  99% 76% 65% 72%
24Go 157.2460.04574,724733  71% 63% 65% 63%
25C# Mono #2 61.6261.67604,084594  3% 2% 11% 85%
25Perl #4 62.2662.29189,296440  0% 0% 0% 100%
25C# Mono 62.6062.762,816,940624  0% 0% 100% 0%
25F# Mono #2 63.0663.212,969,364413  0% 0% 100% 0%
26Go #7 65.1764.50436,904652  100% 1% 0% 0%
31Ruby JRuby 83.7277.401,945,376308  3% 3% 98% 3%
Dart Timed Out5 min632
Erlang Timed Out10 min622
Erlang HiPE Timed Out10 min622
Java 7  #6 Failed1410
Lisp SBCL Bad Output591
Racket #2 Bad Output536
Ruby 2.0 #4 Bad Output523
Ruby JRuby #4 Bad Output523
Scala #4 Failed723
Scala #3 Failed633
"wrong" (different) algorithm / less comparable programs
1.1Java 7  #3 7.692.84261,7882084
1.2Perl #7 4.332.92140,044567
1.2Erlang HiPE #7 7.803.05387,6161198
1.4Erlang #7 8.613.59387,6321198
1.8Perl #6 4.454.46190,244477
7.8Pascal Free Pascal 19.5519.56110,5641199
missing benchmark programs
Fortran Intel No program
Pascal Free Pascal No program

 regex-dna benchmark : Match DNA 8-mers and substitute nucleotides for IUB codes

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

We are trying to show the performance of various programming language implementations - so we ask that contributed programs not only give the correct result, but also use the same algorithm to calculate that result.

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

Each program should

Revised BSD license

  Home   Conclusions   License   Play