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% by secs by mem by gz by cpu secs