The Computer Language
24.06 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.17 596,604 620    
  Julia 135.44 1,971,184 703    
  Matz's Ruby #2 8 min 168,320 426    
 
 
 
× source secs mem gz cpu secs cpu load
1.0 C++ g++ #2 2.02 156,512 1634 6.09 92% 67% 72% 71%
1.4 Rust #7 2.84 133,808 1585 8.92 64% 88% 65% 99%
1.5 Rust #6 3.00 159,596 1697 10.88 88% 88% 98% 89%
1.5 C# .NET 3.04 184,820 2046 10.53 87% 90% 71% 98%
1.8 Rust #8 3.55 137,360 1549 10.66 76% 91% 88% 45%
1.9 F# .NET #6 3.89 187,008 1913 12.37 74% 77% 79% 89%
2.0 Rust #5 3.96 137,896 1745 11.92 70% 92% 90% 48%
2.0 C gcc 3.98 130,432 1512 12.93 96% 56% 90% 83%
2.1 C++ g++ #3 4.18 165,384 1280 13.93 97% 79% 79% 79%
2.4 F# .NET #2 4.88 199,280 1932 17.00 80% 82% 91% 95%
2.4 F# .NET #5 4.91 199,168 1964 16.86 94% 95% 75% 78%
2.5 Chapel #4 4.96 197,504 1071 17.08 99% 82% 82% 82%
2.5 Java  5.02 369,032 1821 16.31 77% 83% 76% 88%
2.5 C# .NET #6 5.06 187,908 1615 12.77 42% 40% 95% 76%
2.9 Chapel #3 5.91 201,216 1040 20.80 99% 83% 84% 85%
3.0 Julia #8 6.06 439,384 965 13.09 35% 74% 49% 56%
3.1 Rust #9 6.36 135,720 1850 17.37 95% 33% 99% 46%
3.1 Rust #2 6.37 137,736 1350 16.21 42% 43% 70% 99%
3.3 Rust #4 6.64 137,260 1755 17.99 54% 89% 33% 95%
3.4 Ada 2012 GNAT #2 6.97 259,832 4911 13.64 77% 13% 20% 85%
3.5 C++ g++ 7.10 757,084 1452 14.78 10% 87% 17% 93%
3.6 Java #3 7.26 365,384 1642 25.09 86% 89% 84% 87%
3.6 Java #6 7.26 365,680 1614 25.28 84% 96% 84% 85%
3.7 Go #7 7.53 162,816 1613 28.78 95% 95% 96% 96%
4.1 Go #6 8.26 145,152 1596 30.01 96% 86% 84% 97%
4.1 Go #3 8.29 145,152 1729 30.02 84% 84% 96% 99%
4.5 Julia #7 9.00 444,580 1379 24.37 66% 82% 70% 51%
4.6 Go #4 9.22 139,776 1552 30.55 78% 76% 97% 82%
5.1 F# .NET #4 10.34 1,321,532 1522 26.40 43% 67% 89% 55%
5.4 Lisp SBCL #6 11.00 518,784 2485 40.05 90% 88% 97% 88%
5.8 C# .NET #4 11.67 778,008 1725 41.58 87% 89% 93% 88%
5.9 F# .NET #3 11.96 1,323,896 1124 25.77 20% 92% 29% 75%
6.3 Lisp SBCL 12.82 587,264 2431 41.91 76% 76% 98% 77%
8.0 Node.js #3 16.23 427,144 1817 44.72 54% 71% 87% 62%
8.3 Lisp SBCL #5 16.72 160,384 2323 16.71 68% 31% 0% 0%
8.3 Lisp SBCL #4 16.74 160,384 2292 16.74 0% 0% 100% 0%
9.3 Dart #3 18.83 221,704 1526 56.55 84% 81% 62% 71%
9.7 PHP #4 19.61 260,560 1290 69.45 78% 99% 94% 81%
10 Java #5 20.44 218,932 2225 44.56 13% 95% 26% 83%
11 Rust 22.12 157,252 1086 66.01 94% 53% 56% 96%
12 OCaml #2 24.56 314,260 1247 56.08 94% 79% 20% 34%
13 Haskell GHC 25.58 662,400 1067 90.01 94% 87% 86% 86%
13 F# .NET 26.43 1,068,296 713 86.77 78% 86% 88% 76%
17 Java #4 34.70 195,564 1887 35.08 97% 0% 0% 3%
18 Node.js #2 36.57 488,892 941 113.15 67% 98% 76% 66%
19 Node.js 38.11 350,996 1011 112.40 61% 64% 72% 96%
20 C# .NET #7 40.69 762,328 1449 41.14 1% 15% 0% 84%
22 Perl 43.90 1,247,396 659 154.01 92% 87% 86% 85%
22 Perl #4 45.38 1,070,336 483 151.76 98% 72% 71% 92%
25 Python 3 #3 50.62 262,400 1970 193.35 94% 94% 98% 95%
26 Lisp SBCL #3 52.55 617,728 1297 52.54 88% 11% 0% 0%
27 Lisp SBCL #2 53.72 617,728 1291 53.72 0% 0% 100% 0%
28 Perl #3 56.61 1,148,032 520 193.68 79% 95% 94% 74%
31 Racket #4 62.01 914,492 893 62.01 100% 0% 0% 0%
32 Python 3 #9 63.78 379,776 614 228.11 96% 78% 90% 93%
36 Python 3 #8 73.69 506,368 663 226.37 72% 96% 64% 74%
42 Ruby yjit 85.20 172,720 583 5 min 82% 94% 82% 99%
48 Lua #2 97.17 596,604 620 97.16 94% 0% 6% 0%
67 Julia 135.44 1,971,184 703 134.42 0% 98% 0% 0%
69 Perl #2 139.32 659,584 365 137.50 0% 0% 0% 98%
95 Matz's Ruby 192.78 147,368 583 10 min 92% 72% 66% 93%
101 Racket 204.06 2,680,884 554 202.15 1% 0% 0% 97%
115 Python 3 232.37 499,456 499 231.68 0% 0% 99% 0%
127 Ruby yjit #2 257.07 181,696 426 256.91 0% 0% 99% 0%
127 Ruby yjit #7 257.65 393,216 792 256.07 14% 25% 30% 30%
133 Ruby yjit #3 268.72 203,648 546 269.07 18% 30% 32% 19%
211 VW Smalltalk #5 7 min 385,348 1323 7 min 0% 100% 0% 0%
245 Matz's Ruby #2 8 min 168,320 426 8 min 100% 0% 0% 0%
281 Dart 9 min 463,432 628 9 min 0% 99% 0% 0%
283 VW Smalltalk 9 min 385,972 1116 9 min 1% 99% 0% 0%
359 Matz's Ruby #3 12 min 168,832 546 12 min 100% 0% 0% 0%
Erlang Timed Out
Erlang #3 Timed Out
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.2 Swift #2 14.61 259,048 1373 55.63 97% 95% 94% 95%
8.1 OCaml #3 16.30 258,576 1839 43.32 88% 38% 99% 39%
11 Haskell GHC #2 22.99 814,720 1492 89.22 97% 96% 97% 97%
20 Haskell GHC #3 39.54 491,008 2266 142.94 90% 91% 91% 91%
23 OCaml 46.91 338,464 894 46.90 100% 0% 0% 0%