The Computer Language
24.04 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 97.75 596,472 620    
  Julia 132.23 1,967,872 703    
  Matz's Ruby #2 8 min 168,140 420    
 
 
 
× source secs mem gz cpu secs cpu load
1.0 C++ g++ #2 1.97 156,504 1634 5.87 66% 68% 73% 92%
1.5 Rust #7 2.86 134,084 1585 9.12 89% 67% 66% 99%
1.5 Rust #6 2.90 159,464 1697 10.51 98% 90% 89% 87%
1.5 C# .NET 3.02 184,620 2046 10.45 76% 86% 92% 92%
1.9 Rust #8 3.68 137,580 1549 10.41 45% 93% 59% 86%
1.9 C gcc 3.80 130,432 1512 12.64 77% 99% 72% 87%
2.0 Rust #5 3.91 137,764 1745 11.86 56% 91% 93% 63%
2.1 C++ g++ #3 4.19 165,592 1280 13.77 80% 94% 79% 78%
2.4 F# .NET #2 4.71 198,872 1932 16.34 81% 80% 91% 95%
2.5 F# .NET #5 4.92 198,784 1964 16.53 80% 88% 77% 95%
2.5 Chapel #4 4.96 192,256 1071 17.07 99% 81% 82% 82%
2.5 C# .NET #6 4.98 188,080 1615 12.69 64% 98% 41% 53%
2.5 Java  5.01 368,104 1821 16.33 92% 79% 78% 77%
2.9 Julia #8 5.74 441,148 965 13.70 68% 72% 38% 60%
3.0 Chapel #3 5.86 192,256 1040 20.64 99% 84% 84% 84%
3.1 Rust #2 6.10 139,388 1350 16.32 75% 76% 47% 69%
3.4 Rust #4 6.70 137,288 1755 18.12 45% 99% 93% 33%
3.4 Ada 2012 GNAT #2 6.75 259,564 4911 13.58 86% 23% 15% 78%
3.4 Rust #9 6.77 135,684 1850 18.07 30% 44% 96% 98%
3.5 C++ g++ 6.90 757,080 1452 14.68 92% 10% 99% 11%
3.6 Java #6 7.18 365,592 1614 25.01 83% 91% 85% 88%
3.7 Java #3 7.30 365,348 1642 25.39 95% 84% 83% 86%
3.8 Go #7 7.52 162,944 1613 28.68 95% 97% 95% 95%
4.2 Go #6 8.17 145,152 1596 29.90 87% 97% 97% 85%
4.3 Go #3 8.38 145,152 1729 30.32 93% 87% 97% 84%
4.4 Julia #7 8.71 430,084 1379 23.62 53% 73% 81% 65%
4.6 Go #4 9.07 139,904 1552 30.33 97% 82% 82% 72%
5.3 F# .NET #4 10.47 1,321,944 1522 26.43 48% 66% 80% 62%
5.6 Lisp SBCL #6 10.97 541,312 2485 40.13 98% 88% 90% 90%
5.9 C# .NET #4 11.52 775,588 1725 41.26 87% 90% 89% 92%
6.1 F# .NET #3 12.07 1,322,292 1124 26.04 30% 79% 84% 26%
6.5 Lisp SBCL 12.76 550,784 2431 41.85 98% 76% 77% 76%
7.8 Node js #3 15.38 422,240 1817 41.85 74% 95% 60% 43%
8.2 Java #5 16.05 219,872 2225 38.17 33% 25% 93% 86%
8.5 Lisp SBCL #4 16.70 156,288 2292 16.70 0% 100% 0% 0%
8.5 Lisp SBCL #5 16.83 156,416 2323 16.83 0% 100% 0% 0%
10 Dart #3 19.89 221,660 1526 59.29 79% 74% 81% 65%
11 PHP #4 20.89 260,560 1084 69.85 72% 77% 96% 89%
11 Rust 21.62 157,080 1086 64.67 50% 96% 60% 92%
12 Haskell GHC 22.83 659,584 1067 77.84 82% 87% 83% 89%
12 F# .NET 24.10 1,108,380 713 83.78 82% 83% 96% 90%
13 OCaml #2 26.57 314,252 1247 60.40 33% 79% 80% 34%
17 Java #4 34.43 195,584 1887 34.79 8% 92% 0% 0%
19 Node js #2 37.49 479,968 941 112.46 64% 97% 73% 64%
19 Perl 38.23 1,247,428 659 131.70 83% 91% 86% 83%
20 Node js 39.64 335,272 1011 115.24 61% 71% 96% 60%
21 C# .NET #7 40.57 761,912 1449 41.01 55% 43% 1% 1%
21 Perl #4 41.87 1,070,080 483 136.26 94% 87% 70% 74%
25 Python 3 #3 48.64 262,016 1970 184.81 96% 94% 94% 94%
26 Lisp SBCL #3 51.99 558,208 1297 51.99 0% 0% 100% 0%
26 Perl #3 52.15 1,147,904 520 171.73 89% 69% 98% 71%
27 Lisp SBCL #2 53.23 558,208 1291 53.23 100% 0% 0% 0%
32 Racket #4 63.67 926,924 893 63.66 81% 0% 0% 19%
39 Python 3 #9 77.06 380,416 614 263.65 79% 71% 95% 96%
43 Ruby 84.88 172,436 583 5 min 85% 92% 80% 96%
45 Python 3 #8 87.79 506,880 663 262.44 60% 84% 96% 58%
50 Lua #2 97.75 596,472 620 97.73 0% 0% 0% 100%
62 Perl #2 121.96 659,584 365 120.07 98% 0% 0% 0%
67 Julia 132.23 1,967,872 703 131.10 0% 0% 98% 0%
97 Matz's Ruby 191.91 147,340 576 10 min 97% 98% 72% 68%
102 Racket 200.38 2,438,152 554 198.38 0% 99% 0% 0%
130 Ruby #2 255.78 181,700 426 255.60 0% 0% 99% 0%
130 Ruby #7 256.92 393,216 792 255.31 28% 25% 32% 13%
139 Ruby #3 272.84 203,672 546 273.06 18% 39% 10% 32%
140 Python 3 275.64 500,224 499 274.74 0% 0% 99% 0%
217 VW Smalltalk #5 7 min 385,292 1323 7 min 0% 29% 0% 70%
263 Matz's Ruby #2 8 min 168,140 420 8 min 0% 0% 0% 99%
281 Dart 9 min 464,520 628 9 min 0% 100% 0% 0%
292 VW Smalltalk 9 min 386,160 1116 9 min 0% 0% 100% 0%
385 Matz's Ruby #3 12 min 168,844 540 12 min 60% 4% 39% 1%
  Erlang 1h 38 min 4,485,776 944 1h 43 min 22% 16% 39% 27%
  Erlang #3 1h 38 min 556,024 945 1h 42 min 29% 15% 37% 22%
F# .NET #6 Make Error
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
7.4 Swift #2 14.51 259,048 1373 55.29 98% 94% 94% 94%
8.0 OCaml #3 15.81 258,380 1839 42.53 39% 42% 93% 95%
11 Haskell GHC #2 22.61 802,944 1492 87.50 97% 96% 96% 97%
19 Haskell GHC #3 37.00 413,952 2266 133.16 90% 92% 91% 89%
22 OCaml 43.82 338,264 894 43.81 0% 100% 0% 0%