The Computer Language
Benchmarks Game

reverse-complement

We accept something intermediate between chaos and rigidity — enough flex & slop & play to allow for Haskell programs that are not just mechanically translated from Fortran; enough similarity in the basic workloads & tested results.

Programming language advocates and curious programmers have contributed new programs and introduced newer techniques. Look at the slower simple sequential programs, and  look at the parallel programs written for multicore, and  look at the low-level programs written for SIMD. Always look at the source code.

× source secs mem gz busy cpu load
1.0 C++ g++ #7 1.55 996,188 1226 2.66 24% 25% 99% 23%
1.1 Rust #2 1.63 994,780 1376 2.80 100% 24% 25% 23%
1.1 C gcc #3 1.78 994,532 1438 4.02 42% 96% 46% 43%
1.2 C gcc #6 1.92 615,196 820 2.71 16% 23% 100% 2%
1.3 Chapel #2 2.08 1,497,376 707 4.76 96% 41% 56% 36%
1.4 Rust 2.16 995,084 1871 3.06 66% 14% 16% 45%
1.4 C gcc #2 2.16 994,368 750 3.25 8% 40% 25% 77%
1.5 Rust #3 2.37 994,768 1382 3.55 16% 97% 17% 19%
1.8 C gcc 2.80 1,971,072 1874 4.06 28% 30% 86% 0%
1.8 C gcc #5 2.84 994,048 647 2.87 0% 1% 0% 100%
1.9 C++ g++ #4 2.99 980,704 2280 4.65 51% 40% 14% 50%
2.0 C# .NET Core #6 3.04 1,036,072 1621 7.35 26% 70% 51% 95%
2.0 F# .NET Core #5 3.06 1,035,904 1140 8.52 89% 42% 91% 57%
2.1 Java  #8 3.27 740,524 2183 7.44 44% 57% 84% 43%
2.2 F# .NET Core #4 3.38 1,035,892 1139 8.94 57% 90% 74% 44%
2.4 OCaml 3.71 34,116 1368 8.66 65% 54% 54% 60%
2.4 C++ g++ #2 3.72 979,700 1087 4.88 10% 35% 76% 10%
2.4 Swift 3.72 791,096 1286 4.58 3% 80% 37% 3%
2.5 Ada 2012 GNAT #2 3.87 793,072 3283 4.44 73% 39% 1% 1%
2.6 Go #2 3.99 824,856 611 4.24 6% 1% 1% 98%
2.8 Go #3 4.35 824,684 605 4.57 1% 97% 1% 6%
2.8 Go #6 4.36 1,795,428 1338 7.47 56% 44% 43% 29%
2.8 F# .NET Core #3 4.40 1,962,240 557 6.11 26% 14% 2% 97%
2.9 C++ g++ #3 4.47 500,080 840 4.52 100% 0% 1% 0%
3.0 C# .NET Core #5 4.63 1,033,828 1613 7.50 64% 24% 47% 27%
3.0 Node js #8 4.72 1,098,408 1307 11.65 73% 61% 54% 60%
3.1 Java #3 4.78 1,172,636 1722 11.14 54% 87% 46% 46%
3.1 Fortran Intel 4.83 985,344 1019 4.87 1% 0% 0% 100%
3.5 Chapel 5.49 1,003,992 643 7.57 98% 16% 8% 16%
3.5 Julia #4 5.50 697,412 667 5.99 8% 5% 3% 94%
3.7 C# .NET Core #4 5.73 1,929,008 1714 7.98 16% 91% 5% 27%
3.7 Substrate VM #8 5.80 963,136 2183 9.71 58% 23% 22% 65%
3.8 Go #5 5.84 1,428,976 996 7.21 63% 9% 17% 35%
3.8 Java #6 5.92 2,061,388 752 7.20 69% 34% 16% 3%
3.8 Haskell GHC #3 5.93 501,548 1020 7.92 100% 12% 10% 12%
4.0 Substrate VM #6 6.15 1,989,576 752 7.35 82% 37% 1% 0%
4.0 C# .NET Core #2 6.23 2,747,488 1674 10.12 26% 46% 27% 63%
4.1 C++ g++ #6 6.30 1,489,944 1832 8.94 69% 19% 23% 31%
4.3 C# .NET Core 6.72 1,032,652 1109 6.92 1% 5% 97% 0%
4.8 Substrate VM #3 7.48 1,019,768 1722 15.81 97% 58% 22% 34%
4.9 Java #5 7.59 1,129,588 1108 8.04 3% 10% 88% 4%
4.9 C gcc #4 7.63 500,396 709 7.73 1% 100% 0% 0%
5.1 Free Pascal #2 7.86 499,600 771 7.93 0% 1% 1% 100%
6.1 Java #4 9.51 1,931,732 651 10.04 87% 3% 3% 13%
6.4 Julia #3 9.88 1,394,484 694 10.46 2% 2% 99% 3%
6.6 Perl #3 10.31 1,494,344 287 10.42 0% 0% 100% 0%
7.2 Substrate VM #5 11.18 921,884 1108 11.27 100% 0% 0% 0%
7.2 C++ g++ 11.22 979,900 592 11.30 100% 0% 1% 0%
7.7 Lisp SBCL 11.89 1,403,692 904 12.25 0% 2% 2% 100%
7.8 Substrate VM #4 12.15 1,182,788 651 12.23 100% 1% 0% 0%
8.8 PHP #3 13.60 528,064 438 20.95 33% 33% 26% 62%
11 Node js #7 16.58 705,144 1103 18.42 6% 26% 55% 24%
11 PHP 17.46 1,469,780 312 17.70 1% 1% 0% 100%
11 Racket #2 17.52 654,488 1030 17.73 0% 0% 1% 100%
12 Python 3 #6 18.59 1,007,292 814 24.35 22% 29% 59% 21%
12 Ada 2012 GNAT 19.11 505,836 937 19.35 0% 1% 100% 0%
12 Haskell GHC #2 19.38 3,462,496 982 18.33 18% 10% 12% 55%
14 PHP #2 21.37 1,779,800 274 21.60 1% 100% 0% 0%
15 Racket CS #2 22.58 896,744 1030 22.71 0% 100% 0% 0%
15 C# .NET Core #3 22.64 1,607,240 915 32.27 19% 72% 38% 13%
15 Node js #2 23.32 707,036 1221 25.25 23% 37% 16% 32%
16 Ruby #5 24.62 1,605,020 295 45.49 61% 67% 35% 22%
22 Ruby #2 33.99 504,996 264 67.58 68% 41% 51% 38%
25 Matz's Ruby #2 38.45 492,804 264 38.84 100% 0% 1% 0%
25 Java #7 38.61 1,032,576 1647 41.83 33% 23% 23% 29%
28 C++ g++ #5 43.81 703,972 720 44.45 0% 1% 1% 100%
31 Racket CS 47.91 2,604,496 553 49.07 47% 54% 1% 1%
31 Substrate VM #7 48.43 997,236 1647 65.47 45% 39% 32% 19%
37 Racket 56.76 1,736,796 553 57.93 1% 100% 0% 1%
38 Ruby #4 58.56 2,002,436 622 130.93 61% 63% 44% 56%
39 Erlang HiPE 60.67 2,152,912 1302 145.40 60% 52% 64% 63%
44 Julia #2 68.78 1,620,840 460 69.85 1% 1% 100% 0%
50 Lua #2 77.65 2,932,848 553 77.85 26% 1% 4% 69%
52 Lua #5 80.31 2,168,372 752 80.74 0% 1% 0% 99%
57 Lua #4 88.39 1,408,700 594 89.45 100% 1% 0% 0%
66 Ruby #3 102.21 1,505,744 537 224.84 62% 42% 61% 55%
82 Fortran Intel #2 126.78 732,508 772 144.15 8% 3% 7% 96%
121 Python 3 #4 187.96 3,722,196 335 241.16 60% 17% 17% 34%
122 Erlang HiPE #4 189.96 1,977,352 1171 271.72 24% 24% 65% 30%
140 F# .NET Core 216.86 3,039,436 595 252.94 9% 31% 52% 25%
142 JRuby #2 220.04 2,857,440 264 257.93 37% 8% 8% 64%
171 Pharo Smalltalk #2 265.01 1,067,592 713 282.84 9% 11% 32% 55%
195 Erlang HiPE #3 5 min 3,522,152 630 6 min 26% 41% 28% 24%
556 Pharo Smalltalk 14 min 1,067,660 892 14 min 76% 1% 2% 24%
Dart #3 Failed
Dart #2 Failed
Dart aot #3 Failed
Dart aot #2 Failed
Dart snapshot #2 Failed
Dart snapshot #3 Failed
F# .NET Core #2 Failed
Go Failed
Julia Bad Output
Lisp SBCL #2 Failed
OCaml #4 Make Error
OCaml #2 Make Error
OCaml #3 Make Error
Ruby Failed
Matz's Ruby #5 Failed
Matz's Ruby #3 Failed
Matz's Ruby Failed
Matz's Ruby #4 Failed
JRuby #3 Failed
JRuby Failed
Truffle Ruby Failed
Truffle Ruby #4 Failed
Truffle Ruby #7 Failed
Truffle Ruby #2 Failed
Truffle Ruby #3 Failed
Truffle Ruby #5 Failed
TypeScript Failed
VW Smalltalk Bad Output