The Computer Language
23.03 Benchmarks Game

k-nucleotide

First a few simple programs.

Then optimisations, multicore parallelism, [pdf] vector parallelism.

Last hand-written vector instructions and "unsafe" programs.

  source secs mem gz    
  Lua #2 113.00 596,368 613    
  Julia 196.01 1,976,552 695    
  Matz's Ruby #2 8 min 168,140 420    
 
 
 
× source secs mem gz cpu secs cpu load
1.0 C++ g++ #2 1.96 156,360 1631 5.87 68% 91% 73% 66%
1.6 Rust #7 2.88 133,236 1578 9.14 69% 89% 84% 76%
1.8 Rust #8 3.56 137,632 1543 10.34 99% 58% 87% 45%
1.8 Rust #6 2.88 158,788 1691 10.48 89% 89% 97% 88%
1.9 Julia #8 4.64 374,472 951 11.01 78% 59% 41% 58%
2.0 C# .NET 3.60 184,024 2044 11.81 73% 89% 83% 83%
2.0 Rust #5 4.08 137,648 1739 11.99 66% 52% 84% 92%
2.2 C gcc 3.77 129,952 1506 12.67 87% 89% 99% 60%
2.2 F# .NET #6 4.11 260,772 1907 12.92 93% 76% 76% 69%
2.3 Ada 2012 GNAT #2 6.43 258,844 4908 13.68 90% 16% 38% 68%
2.4 C++ g++ #3 4.16 165,784 1276 13.84 80% 79% 76% 97%
2.5 C++ g++ 6.80 756,220 1446 14.43 92% 92% 17% 10%
2.7 C# .NET #6 5.98 190,172 1603 15.84 47% 54% 88% 76%
2.7 F# .NET #2 4.54 272,540 1926 15.96 77% 85% 94% 95%
2.8 Java  5.03 361,196 1812 16.40 80% 80% 87% 78%
2.8 Lisp SBCL #5 16.48 153,116 2320 16.45 0% 100% 0% 0%
2.8 Rust #2 6.30 137,548 1347 16.69 69% 46% 73% 76%
2.9 Lisp SBCL #4 17.02 152,920 2291 17.02 0% 0% 0% 100%
3.0 Julia #7 6.88 360,996 1368 17.50 80% 63% 44% 65%
3.0 Rust #9 6.54 136,008 1841 17.81 90% 38% 60% 84%
3.2 Rust #4 6.95 136,744 1749 18.88 34% 96% 95% 45%
3.4 Chapel #4 5.66 192,092 1031 20.12 99% 85% 85% 84%
4.0 Chapel #3 6.50 198,044 1007 23.41 99% 86% 86% 87%
4.3 Java #6 7.17 357,700 1607 25.04 84% 88% 87% 89%
4.3 Java #3 7.12 357,568 1635 25.06 85% 89% 85% 92%
4.9 Go #7 7.48 166,412 1607 28.68 96% 95% 96% 95%
5.0 Go #6 7.96 148,080 1590 29.25 84% 99% 97% 86%
5.1 Go #3 8.28 148,412 1722 29.93 94% 98% 85% 84%
5.4 Go #4 9.50 142,624 1543 31.55 81% 97% 83% 70%
6.1 Java #4 35.38 201,052 1882 35.83 6% 91% 0% 3%
6.3 Lisp SBCL #6 10.20 537,800 2479 37.02 90% 87% 99% 87%
6.5 Lisp SBCL 11.81 381,756 2424 38.08 76% 74% 73% 98%
7.0 Java #5 18.82 208,376 2219 40.84 31% 95% 55% 37%
7.4 Node js #3 15.72 416,500 1812 43.32 95% 62% 77% 41%
8.9 Lisp SBCL #3 52.10 381,228 1290 52.08 0% 59% 40% 0%
8.9 Lisp SBCL #2 52.27 381,232 1284 52.27 0% 0% 0% 100%
9.2 Dart #3 19.74 225,424 1520 54.22 71% 94% 47% 62%
9.8 OCaml #2 24.86 321,940 1239 57.36 30% 83% 32% 84%
10 Racket #4 61.49 858,184 885 61.46 0% 100% 0% 0%
11 Rust 21.93 155,840 1078 65.94 92% 83% 73% 54%
12 PHP #4 20.80 260,644 1079 70.63 99% 79% 70% 90%
12 Haskell GHC 20.96 546,876 1059 71.24 93% 82% 81% 83%
19 Lua #2 113.00 596,368 613 112.94 0% 100% 0% 0%
19 Perl #2 114.21 659,832 359 114.19 0% 0% 0% 100%
20 Node js #2 37.55 486,856 935 116.51 68% 68% 75% 98%
20 Node js 40.21 518,808 1008 117.96 91% 73% 63% 65%
22 Perl #4 40.72 1,069,244 476 127.66 93% 64% 65% 91%
22 Perl 38.38 1,247,436 652 131.20 83% 91% 84% 83%
28 Python 3 #3 44.13 262,348 1967 165.01 97% 92% 92% 93%
29 Perl #3 51.56 1,146,964 513 168.22 70% 94% 69% 93%
33 Julia 196.01 1,976,552 695 194.57 0% 0% 99% 0%
34 Racket 198.95 2,674,436 547 196.69 1% 0% 0% 98%
36 Python 3 58.56 379,464 607 211.98 96% 96% 76% 94%
36 Erlang #3 76.09 844,732 937 213.42 58% 69% 61% 91%
36 Python 3 #8 69.21 505,836 655 214.24 68% 95% 65% 80%
37 Erlang 80.84 6,288,336 936 217.90 65% 54% 65% 85%
43 Ruby #2 249.91 202,672 420 249.53 0% 1% 79% 20%
49 Ruby #3 285.77 209,580 540 285.36 27% 23% 27% 24%
49 Ruby #7 289.86 397,756 785 287.45 22% 27% 27% 23%
50 Ruby 83.82 174,084 576 291.63 79% 92% 96% 81%
72 VW Smalltalk #5 7 min 385,100 1317 7 min 0% 100% 0% 0%
88 Matz's Ruby #2 8 min 168,140 420 8 min 0% 0% 0% 99%
99 VW Smalltalk 9 min 385,940 1110 9 min 0% 0% 100% 0%
99 Dart 9 min 466,772 623 9 min 0% 0% 0% 100%
109 Matz's Ruby 191.91 147,340 576 10 min 97% 98% 72% 68%
129 Matz's Ruby #3 12 min 168,844 540 12 min 60% 4% 39% 1%
Classic Fortran Make Error
Matz's Ruby #7 Failed
Swift Make Error
 
 
  hand-written vector instructions | "unsafe"
 
× source secs mem gz cpu secs cpu load
6.4 Haskell GHC #3 10.63 417,640 2261 37.47 93% 89% 86% 85%
7.8 OCaml 45.59 338,320 886 45.59 0% 0% 0% 100%
7.8 OCaml #3 17.82 258,440 1833 45.96 34% 35% 88% 99%
8.9 Swift #2 13.63 258,044 1367 52.21 94% 97% 94% 95%
14 Haskell GHC #2 21.14 807,308 1486 81.68 97% 97% 96% 96%