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