The Computer Language
24.11 Benchmarks Game

reverse-complement

These are crowd sourced programs, contributed to the project by an ever-changing self-selected group.

We include both un-optimised programs and heavily optimised programs (look at the gz source code size). We include both single-thread programs and multi-thread programs (look at the cpu secs and cpu load). We include [pdf] vector parallelism and even hand-written vector instructions. How the programs are written matters!

Always look at the source code.

× source secs mem gz cpu secs cpu load
1.0 OCaml #3 2.28 19,676 1361 5.77 65% 65% 58% 63%
25 C gcc #9 0.48 500,032 1551 0.76 41% 20% 22% 79%
26 Python 3 #3 4.86 507,712 803 4.86 0% 100% 0% 0%
27 Free Pascal #2 3.81 525,052 773 3.81 0% 0% 0% 100%
27 Ada 2012 GNAT 13.45 528,504 943 13.45 100% 0% 0% 0%
27 PHP #3 8.13 536,024 452 12.47 4% 55% 63% 29%
30 C# .NET 3.14 583,252 1130 3.18 3% 57% 42% 0%
34 C gcc #6 0.96 675,260 828 1.36 26% 99% 2% 17%
35 Matz's Ruby #2 23.61 688,216 272 23.61 58% 41% 0% 0%
37 C# .NET #9 0.59 733,932 2641 1.37 70% 66% 22% 75%
39 Intel Fortran #2 42.90 769,748 778 42.89 0% 100% 0% 0%
39 C++ g++ #5 37.59 771,632 704 37.58 72% 27% 0% 0%
41 Go #3 2.48 800,384 609 2.57 94% 3% 1% 5%
41 Go #2 2.19 800,640 614 2.29 0% 16% 0% 89%
42 Ada 2012 GNAT #2 2.99 822,216 3285 3.82 0% 0% 42% 85%
46 OCaml #2 9.27 909,056 426 9.27 0% 99% 0% 0%
47 C# .NET #7 1.54 927,984 1312 4.25 36% 56% 90% 94%
50 C++ g++ 6.52 980,156 599 6.51 0% 1% 100% 0%
50 Intel Fortran 3.33 986,304 1026 3.33 0% 0% 100% 0%
51 C gcc #5 1.53 994,108 654 1.53 100% 0% 0% 0%
51 C gcc #2 1.06 994,536 757 1.58 86% 19% 13% 30%
51 Rust #3 0.97 995,156 1105 1.69 26% 67% 24% 60%
51 Rust #2 0.95 995,220 1332 1.58 57% 22% 23% 64%
51 Perl #4 5.76 998,608 268 5.76 100% 0% 0% 0%
51 Dart #8 19.05 1,001,004 651 20.03 54% 35% 1% 13%
51 Ruby yjit #2 27.45 1,001,920 272 27.45 0% 100% 0% 0%
52 Julia #7 1.65 1,024,148 531 1.76 4% 90% 11% 0%
52 C# .NET #5 2.53 1,025,008 1620 3.83 18% 37% 1% 93%
52 C# .NET #6 1.55 1,027,196 1627 3.76 18% 54% 96% 75%
52 Lua #4 49.35 1,030,016 600 49.33 0% 100% 0% 0%
53 Java  #7 23.98 1,037,708 1654 6.26 4% 6% 12% 4%
54 Chapel #9 0.98 1,057,244 1260 2.81 90% 63% 62% 71%
56 Java #5 4.72 1,097,732 1115 4.84 29% 10% 60% 3%
62 Julia #9 2.00 1,220,680 456 2.11 96% 8% 1% 2%
63 Go #6 1.91 1,244,508 1340 3.40 72% 17% 31% 59%
70 C# .NET #3 8.47 1,380,908 934 13.21 43% 27% 49% 36%
76 PHP 10.22 1,488,780 323 10.22 47% 52% 0% 0%
76 Lisp SBCL 5.46 1,494,784 911 5.46 100% 0% 0% 0%
76 Perl #3 6.77 1,495,228 295 6.76 1% 1% 99% 0%
76 Python 3 #5 4.09 1,500,716 960 7.41 89% 0% 54% 38%
77 C++ g++ #6 3.30 1,517,824 1827 4.38 22% 32% 66% 13%
83 Ruby yjit #5 14.12 1,623,336 301 14.11 0% 100% 0% 0%
91 PHP #2 12.21 1,786,608 288 12.20 73% 26% 0% 0%
91 Python 3 #2 10.08 1,788,136 440 10.08 100% 0% 0% 0%
96 Java #4 5.65 1,891,656 656 5.77 95% 3% 2% 2%
97 Chapel #5 1.93 1,905,304 554 3.28 93% 24% 23% 30%
99 Julia #2 29.29 1,951,468 464 29.83 35% 64% 2% 0%
101 Python 3 10.29 1,986,440 484 10.29 0% 99% 0% 0%
101 Dart #5 8.95 1,994,744 942 12.12 31% 13% 67% 23%
103 Java #6 3.15 2,032,996 760 3.79 33% 8% 0% 78%
104 Racket 40.68 2,047,232 560 40.68 0% 100% 0% 0%
108 Chapel #3 1.69 2,133,608 709 3.07 92% 27% 27% 35%
110 Lua #5 41.96 2,169,636 758 41.96 100% 0% 0% 0%
111 Erlang 26 min 2,180,832 1309 30 min 41% 21% 15% 35%
126 Python 3 #6 7.38 2,484,372 821 10.89 28% 46% 19% 53%
128 Ruby yjit #4 5.88 2,510,920 608 11.51 32% 86% 25% 53%
135 Lua #2 41.12 2,654,652 560 41.10 0% 100% 0% 0%
153 F# .NET 39.89 3,000,744 603 41.18 9% 54% 1% 38%
176 Matz's Ruby #3 9.49 3,467,256 490 17.96 76% 50% 33% 30%
203 Python 3 #4 13.41 4,002,688 343 13.41 100% 0% 0% 0%
215 Ruby yjit #3 8.95 4,235,052 490 17.34 97% 23% 25% 48%
261 Ruby yjit 18.31 5,141,976 521 35.91 40% 94% 56% 4%
325 Dart #3 58.10 6,394,552 571 64.47 54% 43% 9% 3%
326 Dart #2 91.20 6,406,136 575 99.37 46% 47% 10% 4%
C++ g++ #3 Bad Output
Dart #4 Bad Output
Erlang #4 Timed Out
Erlang #3 Timed Out
F# .NET #4 Timed Out
F# .NET #5 Timed Out
Go #5 Bad Output
Go Failed
Java #3 Bad Output
Node.js #7 Bad Output
Lisp SBCL #2 Failed
Matz's Ruby Failed
Matz's Ruby #5 Failed
Matz's Ruby #4 Failed
VW Smalltalk Bad Output
 
 
  * possible hand-written vector instructions | "unsafe"
 
× source secs mem gz cpu secs cpu load
1.0 * OCaml 2.25 19,676 1372 5.09 57% 59% 56% 53%
25 * Rust 0.53 498,952 2762 0.84 20% 19% 20% 100%
25 * C++ g++ #2 0.74 499,916 2099 0.74 0% 0% 100% 2%
25 * C gcc #7 0.44 499,992 1899 0.59 76% 11% 36% 14%
25 * C gcc #4 3.70 500,452 716 3.69 1% 11% 1% 89%
26 * Haskell GHC #4 3.08 507,008 1047 3.15 2% 55% 20% 25%
37 * Node.js #2 15.44 731,804 1228 16.09 47% 31% 4% 22%
40 * Racket #2 9.06 784,116 1038 9.06 0% 100% 0% 0%
41 * Swift 1.95 798,228 1293 2.39 40% 4% 1% 78%
180 * Haskell GHC #2 6.37 3,533,056 998 6.48 0% 35% 53% 12%