regex-redux Always look at the source code. Look at the slower simple sequential programs, and look at the parallel programs written for multicore, and look at the low-level programs written for SIMD. × source secs mem gz busy cpu load 1.0 Matz's Ruby #9 70.50 223,800 334 75.15 98% 3% 1% 4% 1.0 Ruby #9 39.50 423,428 334 42.70 3% 4% 100% 1% 1.2 Julia 5.89 478,336 408 6.34 3% 9% 92% 4% 1.3 Ruby #2 32.60 327,028 437 34.94 19% 31% 38% 19% 1.3 Matz's Ruby #2 73.99 223,792 437 78.94 1% 6% 0% 100% 1.4 Node js #4 10.51 611,040 463 11.73 42% 19% 11% 39% 1.4 Perl 36.03 205,340 464 36.40 56% 0% 43% 2% 1.5 Chapel #2 9.84 454,180 489 13.25 99% 14% 10% 12% 1.5 Chapel #3 7.97 453,364 493 11.36 99% 15% 13% 15% 1.5 Python 3 18.39 454,508 512 36.95 33% 83% 35% 50% 1.6 Racket 53.47 1,024,324 541 56.37 51% 48% 5% 1% 1.8 F# .NET Core #7 7.87 971,632 599 11.18 64% 37% 28% 13% 1.8 F# .NET Core #6 17.34 1,150,112 611 56.49 80% 88% 80% 79% 1.9 Julia #3 3.44 482,928 622 6.46 99% 66% 6% 17% 1.9 OCaml #2 25.23 901,944 637 27.09 4% 1% 100% 3% 2.0 C++ g++ 9.42 202,260 656 9.64 100% 1% 1% 1% 2.0 Node js #3 9.53 756,856 668 12.74 71% 24% 13% 26% 2.0 Swift #2 77.26 682,780 671 81.56 76% 2% 4% 24% 2.0 C# .NET Core #5 18.07 1,282,068 673 58.18 88% 82% 77% 75% 2.0 Dart #2 12.40 594,136 677 15.00 18% 74% 8% 21% 2.1 C++ g++ #2 5.99 187,388 700 9.32 5% 2% 84% 64% 2.1 Rust #2 2.42 149,712 701 3.36 13% 100% 13% 13% 2.1 Perl #2 27.29 204,592 710 47.11 0% 1% 100% 71% 2.1 Swift 44.59 885,164 715 81.94 19% 60% 20% 85% 2.2 Rust #3 2.35 199,480 719 3.35 14% 30% 83% 16% 2.2 Ruby #3 15.85 277,116 724 35.00 93% 39% 41% 48% 2.2 Matz's Ruby #3 33.42 223,840 724 75.30 43% 42% 74% 66% 2.2 Racket #2 26.20 1,242,924 729 57.35 65% 51% 17% 86% 2.2 Java #6 10.27 635,500 740 29.42 74% 81% 55% 76% 2.2 Go 45.46 370,676 741 109.78 63% 62% 65% 52% 2.2 Swift #4 45.55 974,416 745 82.92 92% 27% 37% 27% 2.3 Rust #4 2.32 201,120 765 3.38 83% 30% 31% 1% 2.3 Julia #4 3.04 439,520 766 5.17 4% 62% 5% 98% 2.3 Rust #5 2.28 200,532 771 3.30 2% 85% 57% 0% 2.4 Rust 2.35 149,968 804 3.31 14% 100% 13% 14% 2.4 Go #5 7.21 326,552 810 10.19 22% 18% 87% 14% 2.4 PHP 2.88 155,276 816 5.63 44% 79% 33% 38% 2.5 Perl #4 16.03 156,916 820 46.37 79% 77% 87% 46% 2.5 Go #4 24.60 381,640 829 57.48 66% 64% 45% 59% 2.5 Go #3 45.37 410,760 829 111.99 65% 52% 67% 63% 2.6 C++ g++ #5 6.30 214,544 852 9.32 16% 25% 16% 90% 2.6 C++ g++ #3 18.11 217,296 853 27.29 1% 42% 8% 100% 2.6 Perl #3 16.46 157,172 854 47.16 71% 96% 60% 59% 2.6 Java 16.16 632,156 868 30.07 38% 45% 40% 63% 2.8 Java #3 10.37 647,912 929 31.22 74% 73% 76% 78% 3.0 Rust #6 2.20 153,504 986 3.23 15% 32% 84% 16% 3.1 Dart #3 8.79 924,316 1041 14.33 23% 29% 41% 71% 3.1 Erlang HiPE #6 60.01 2,136,672 1048 101.58 39% 41% 36% 53% 3.3 C gcc #2 4.68 103,076 1115 4.78 1% 100% 1% 0% 3.7 C gcc #4 1.52 152,200 1230 4.14 60% 54% 99% 58% 3.8 C gcc #3 2.93 103,616 1266 4.80 100% 19% 21% 25% 3.9 C++ g++ #4 1.86 203,856 1315 4.49 99% 50% 48% 44% 4.2 C gcc #5 1.42 152,192 1397 3.40 100% 48% 48% 44% 4.2 Python 3 #2 2.67 111,864 1403 4.86 87% 30% 29% 35% 5.6 C# .NET Core #8 2.82 365,156 1869 4.97 27% 86% 26% 38% 6.6 Haskell GHC #3 1.68 308,212 2213 3.92 46% 77% 44% 66% 6.7 Intel Fortran 1.73 175,952 2225 4.90 67% 62% 61% 94% 8.5 C++ g++ #6 2.41 275,980 2850 4.11 22% 39% 85% 24% 11 Ada 2012 GNAT #5 7.02 154,252 3640 19.93 59% 61% 84% 79% Ada 2012 GNAT #6 Bad Output Lisp SBCL #3 Failed Lua Failed Free Pascal Failed Free Pascal #2 Failed by secs by mem by gz by busy