regex-redux (See rebar.) Regex might be provided by wrapping a third-party library written in some-other programming language. How would you know? First a few simple programs. Then optimisations, multicore parallelism, [pdf] vector parallelism. Last hand-written vector instructions and "unsafe" programs and the more obvious foreign function interface programs. source secs mem gz C++ g++ 3.62 212,180 662 Ruby #9 30.10 216,576 327 Julia 3.86 488,864 414 Node js #4 5.48 975,456 471 × source secs mem gz cpu secs cpu load 1.0 Free Pascal 5.51 103,016 1300 5.51 100% 1% 0% 0% 1.0 C gcc #2 3.23 103,296 1121 3.23 100% 0% 0% 0% 1.0 C gcc #3 1.72 103,680 1273 3.29 38% 27% 99% 28% 1.5 C gcc #4 0.96 152,256 1237 3.27 73% 99% 83% 88% 1.5 C gcc #5 0.80 152,388 1403 2.03 100% 54% 48% 54% 1.5 Ada 2012 GNAT #5 4.90 152,628 3647 13.63 75% 67% 59% 77% 1.5 Rust #6 1.19 153,584 994 1.44 6% 7% 99% 10% 1.5 Rust #2 1.34 153,896 707 1.58 6% 100% 6% 8% 1.5 Rust 1.30 154,416 811 1.52 23% 6% 82% 7% 1.5 Perl #4 10.48 157,300 823 30.98 96% 60% 92% 46% 1.9 PHP 1.87 194,876 822 3.72 28% 41% 42% 87% 1.9 Rust #4 1.30 199,540 771 1.54 18% 81% 20% 0% 2.0 Rust #5 1.28 202,584 777 1.52 82% 0% 0% 36% 2.0 Rust #3 1.31 202,684 726 1.56 26% 80% 6% 7% 2.0 Perl #2 17.23 205,436 717 29.80 100% 73% 0% 0% 2.0 Perl 22.47 205,652 471 22.46 100% 0% 0% 0% 2.1 C++ g++ 3.62 212,180 662 3.62 0% 0% 100% 0% 2.1 C++ g++ #2 2.84 212,776 706 3.60 27% 100% 0% 0% 2.1 C++ g++ #5 3.86 215,556 859 4.54 6% 6% 99% 6% 2.1 Ruby #3 11.84 216,576 730 24.21 43% 87% 33% 40% 2.1 Ruby #9 30.10 216,576 327 30.09 0% 0% 0% 100% 2.1 Ruby #2 23.19 216,576 444 23.19 4% 48% 23% 25% 2.1 C++ g++ #3 12.41 217,580 859 17.91 1% 99% 0% 44% 2.2 Matz's Ruby #2 34.08 229,808 437 34.04 0% 100% 0% 0% 2.2 Matz's Ruby #9 39.70 229,820 321 39.69 0% 0% 100% 0% 2.2 Matz's Ruby #3 16.05 229,908 724 37.74 93% 47% 46% 47% 2.7 C++ g++ #6 1.15 276,276 2856 2.18 31% 85% 44% 33% 3.1 Go #5 3.17 320,972 817 5.38 97% 22% 27% 25% 3.4 Go 25.58 345,472 749 61.95 66% 66% 53% 56% 3.6 Go #4 14.51 368,680 832 34.26 59% 53% 49% 75% 3.9 Go #3 25.72 402,968 836 62.19 48% 57% 57% 79% 4.0 Perl #3 10.69 409,956 854 31.50 60% 96% 92% 46% 4.2 Python 3 8.83 432,724 515 16.44 82% 32% 44% 27% 4.7 Julia 3.86 488,864 414 4.05 3% 3% 3% 96% 5.1 Dart #4 15.22 520,384 513 15.28 1% 99% 1% 0% 5.1 Dart #5 10.04 520,828 710 15.51 56% 38% 3% 58% 5.4 Chapel #2 4.53 552,788 498 5.47 99% 7% 7% 8% 5.4 Chapel #3 3.74 552,796 503 4.68 99% 9% 8% 10% 5.4 Dart #2 19.06 557,692 667 19.46 99% 1% 1% 0% 5.6 Dart #3 10.90 572,356 1061 19.59 39% 31% 25% 84% 6.5 Java 8.38 666,804 875 16.42 76% 35% 35% 49% 6.5 Java #3 5.17 671,372 935 17.04 79% 78% 92% 82% 6.6 Swift #2 41.76 684,640 678 41.75 82% 0% 0% 17% 7.7 Node js #3 4.34 790,368 675 5.44 1% 89% 2% 32% 8.2 C# .NET 4.58 847,208 641 4.81 30% 2% 1% 73% 8.3 F# .NET #2 4.63 852,508 437 4.87 7% 1% 27% 73% 8.3 F# .NET #6 1.76 860,064 622 5.19 64% 94% 68% 70% 8.4 C# .NET #5 1.96 860,260 679 5.97 75% 77% 87% 66% 8.6 Swift 24.13 889,972 721 42.70 0% 0% 99% 77% 9.3 C# .NET #4 12.97 960,888 854 44.30 82% 96% 86% 78% 9.5 Node js #4 5.48 975,456 471 5.65 2% 89% 10% 2% 9.6 Lisp SBCL #4 14.08 994,024 1977 29.33 37% 66% 50% 55% 10 Swift #4 20.41 1,060,208 751 44.32 50% 91% 38% 37% 12 Java #6 5.57 1,234,928 746 17.17 71% 86% 70% 81% 13 Racket 23.80 1,294,036 548 23.80 0% 100% 0% 0% 14 F# .NET #7 4.50 1,397,868 610 6.36 16% 28% 14% 83% 15 Racket #2 13.97 1,545,628 736 25.59 37% 74% 45% 27% 51 Erlang #6 22.65 5,214,780 1055 42.40 44% 75% 30% 37% Ada 2012 GNAT #6 Bad Output C++ g++ #4 Make Error F# .NET Bad Output F# .NET #4 Bad Output Lua Failed OCaml #3 Make Error Perl #5 Bad Output hand-written vector instructions | "unsafe" | naked ffi × source secs mem gz cpu secs cpu load 1.5 Rust #7 0.78 150,272 2464 1.99 52% 60% 55% 89% 1.6 Python 3 #2 1.35 168,092 1411 2.62 44% 32% 86% 34% 1.7 Classic Fortran 0.93 176,236 2229 3.04 98% 73% 78% 77% 3.8 C# .NET #8 1.38 388,784 1881 2.62 96% 40% 21% 33% 4.0 Haskell GHC #3 1.07 411,520 2219 2.28 37% 82% 54% 42% 4.3 Julia #5 1.74 443,844 766 3.05 5% 0% 71% 98% 4.4 Julia #4 1.80 448,796 772 3.12 99% 68% 7% 0% 5.1 Julia #3 2.26 528,768 630 3.77 4% 5% 59% 99% 9.0 OCaml #2 13.51 922,760 644 13.51 1% 100% 1% 1% by secs by mem by gz by cpu secs