The Computer Language
25.03 Benchmarks Game

reverse-complement sorted-by "secs"

Always look at the source code.

(Lumpers and Splitters.)

Some of these programs are single-thread and some are multi-thread: compare "secs" and "cpu secs". Some of these programs are un-optimised and some are heavily optimised: sort-by "gz" source code size.

Some of these programs are "naked ffi" and some put that in a library. Some of these programs are high-level and some are hand-written vector instructions.

Always look at the source code.

  * possible hand-written vector instructions or "unsafe"
 
× source secs mem gz cpu secs
1.0 * C gcc #7 0.44 514,208 1899 0.59
1.1 C gcc #9 0.49 514,159 1551 0.77
1.2 * Rust 0.55 512,963 2762 0.85
1.7 * C++g++ #2 0.76 514,101 2099 0.75
2.2 C gcc #6 0.97 693,969 828 1.36
2.3 Rust #2 1.01 1,022,128 1332 1.60
2.3 Rust #3 1.02 1,022,034 1105 1.71
2.3 Chapel #9 1.03 1,087,701 1260 2.83
2.4 C gcc #2 1.07 1,021,755 757 1.59
3.5 C gcc #5 1.54 1,020,662 654 1.53
3.6 C# naot #7 1.56 774,136 1312 4.10
4.1 Julia #7 1.79 1,128,022 531 1.86
4.1 C# naot #6 1.81 1,029,992 1627 4.23
4.2 Chapel #3 1.85 1,669,710 709 3.19
4.2 Chapel #5 1.86 1,442,660 554 3.18
4.4 Go #6 1.93 1,277,608 1340 3.43
4.7 * Swift 2.05 825,635 1293 2.47
4.8 Julia #9 2.12 1,330,082 456 2.19
5.0 Go #2 2.22 822,211 614 2.32
5.2 * OCaml 2.27 1,519,079 1372 5.14
5.2 OCaml #3 2.28 1,518,805 1361 5.78
5.7 Go #3 2.50 821,985 609 2.60
6.2 C# naot #5 2.74 1,027,035 1620 3.73
6.9 Ada 2012 GNAT #2 3.02 845,664 3285 3.85
7.1 * Haskell GHC #4 3.11 523,076 1047 3.19
7.6 Intel Fortran 3.35 1,012,519 1026 3.35
7.7 C# naot 3.37 637,997 1130 3.34
8.4 * C gcc #4 3.70 514,077 716 3.70
8.7 Free Pascal #2 3.83 538,989 773 3.83
9.2 Java naot #6 4.05 2,063,376 760 4.72
9.5 Python 3 #5 4.18 2,418,156 960 7.44
11 Python 3 #3 4.96 523,801 803 4.92
13 Lisp SBCL 5.51 1,538,748 911 5.49
13 Perl #4 5.80 1,026,572 268 5.78
14 Ruby #4 6.01 3,079,053 608 11.59
14 Java naot #5 6.03 1,100,202 1115 6.02
15 * Haskell GHC #2 6.55 3,131,236 998 6.67
15 C++ g++ 6.55 1,006,805 599 6.55
15 Java naot #4 6.75 1,914,102 656 6.74
16 Perl #3 6.84 1,535,848 295 6.82
17 Python 3 #6 7.59 2,795,930 821 11.03
19 PHP #3 8.29 1,821,659 452 12.58
19 Ruby #3 8.46 4,884,902 490 16.64
19 Dart aot #5 8.55 2,049,769 942 11.57
20 C# naot #3 8.76 1,236,947 934 13.24
21 * Racket #2 9.12 854,643 1038 9.07
21 OCaml #2 9.29 933,937 426 9.29
23 Python 3 #2 10.09 1,837,285 440 10.05
24 PHP 10.35 1,531,154 323 10.32
24 Python 3 10.43 2,040,713 484 10.39
28 PHP #2 12.31 1,836,716 288 12.28
30 Ruby 13.29 6,528,086 521 25.84
31 Python 3 #4 13.47 4,109,324 343 13.43
31 Ruby #5 13.63 1,647,829 301 13.59
32 Ada 2012 GNAT 14.15 543,805 943 14.14
35 * Node.js #2 15.53 763,048 1228 16.20
40 Dart aot #8 17.41 1,029,464 651 18.11
44 Ruby #2 19.54 519,827 272 19.50
67 Julia #2 29.48 2,259,153 464 29.93
86 C++ g++ #5 37.66 792,846 704 37.65
88 Lua #2 38.73 2,724,770 560 38.71
95 F# 41.59 3,088,159 603 42.79
97 Racket 42.51 2,151,363 560 42.45
97 Lua #5 42.84 2,227,048 758 42.82
103 Intel Fortran #2 45.22 790,307 778 45.21
105 Lua #4 46.06 653,398 600 46.05
144 Dart aot #3 63.21 6,642,663 571 71.63
235 Dart aot #2 103.48 6,579,233 575 117.60
345 Pharo Smalltalk #2 151.89 1,164,440 724 152.85
  Pharo Smalltalk 9 min 2,728,526 907 9 min
  Erlang 29 min 4,154,388 1309 32 min
C# naot #9 Bad Output
C++ g++ #6 Bad Output
C++ g++ #3 Bad Output
Dart aot #4 Bad Output
Erlang #4 Timed Out
Erlang #3 Timed Out
F# #4 Timed Out
F# #5 Timed Out
Go #5 Bad Output
Go Empty
Java naot #3 Bad Output
Java naot #7 Bad Output
Node.js #7 Bad Output
Lisp SBCL #2 Timed Out