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