The Computer Language
Benchmarks Game

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 C gcc #5 0.80 148,844 1397 2.03 53% 100% 54% 48%
1.2 C gcc #4 0.94 148,692 1230 3.29 85% 100% 73% 90%
1.2 Haskell GHC #3 0.97 308,072 2213 2.32 46% 51% 80% 62%
1.2 Intel Fortran 0.99 175,844 2225 3.12 73% 67% 74% 100%
1.3 C++ g++ #6 1.03 275,752 2850 2.19 36% 37% 100% 40%
1.4 C++ g++ #4 1.09 203,840 1315 3.40 63% 71% 99% 78%
1.6 Rust #6 1.28 153,836 986 1.79 13% 83% 13% 31%
1.7 Rust #5 1.35 196,820 771 1.86 52% 2% 83% 1%
1.7 Rust 1.37 150,836 804 1.88 13% 13% 99% 12%
1.7 Python 3 #2 1.37 404,320 1403 2.65 32% 41% 33% 88%
1.7 Rust #3 1.38 196,588 719 1.87 31% 11% 82% 12%
1.7 Rust #2 1.38 149,412 701 1.90 14% 12% 12% 100%
1.7 Rust #4 1.38 197,492 765 1.87 82% 35% 18% 1%
1.8 C# .NET Core #8 1.43 330,072 1869 2.71 33% 39% 88% 30%
2.1 C gcc #3 1.70 103,532 1266 3.28 36% 28% 29% 100%
2.1 PHP 1.71 271,952 816 3.50 37% 75% 43% 50%
2.3 Julia #4 1.81 439,740 766 3.24 65% 98% 8% 7%
2.6 Julia #3 2.09 484,984 622 3.86 6% 99% 8% 73%
4.0 C gcc #2 3.18 101,956 1115 3.21 1% 100% 0% 0%
4.3 C++ g++ #2 3.41 198,876 700 5.84 0% 0% 86% 86%
4.5 Go #5 3.57 382,828 810 5.71 21% 42% 47% 51%
4.5 Julia 3.57 481,480 408 3.87 3% 99% 3% 3%
4.7 C++ g++ #5 3.71 214,572 852 6.02 90% 20% 30% 21%
5.3 Chapel #3 4.25 485,144 493 6.90 99% 22% 22% 19%
5.4 Node js #3 4.27 1,064,544 668 5.47 4% 2% 75% 47%
5.5 F# .NET Core #7 4.37 985,812 599 6.26 78% 27% 17% 21%
5.8 Ada 2012 GNAT #5 4.62 154,104 3640 13.42 75% 71% 84% 61%
6.2 Dart #3 4.92 914,036 1041 7.72 21% 25% 91% 20%
6.8 Node js #4 5.42 922,296 463 5.67 1% 27% 75% 2%
6.9 Chapel #2 5.49 482,612 489 8.16 99% 17% 18% 14%
7.2 Java  #3 5.75 647,984 929 18.61 82% 88% 77% 77%
7.3 C++ g++ 5.80 194,692 656 5.86 1% 0% 0% 100%
7.3 Java #6 5.81 630,220 740 18.48 84% 71% 81% 82%
8.2 Dart #2 6.52 551,860 677 7.84 85% 9% 5% 21%
12 Java 9.39 634,280 868 17.77 23% 45% 72% 49%
12 Ruby #3 9.49 277,372 724 20.85 90% 43% 38% 49%
12 Python 3 9.50 455,420 512 18.38 39% 89% 37% 29%
12 F# .NET Core #6 9.95 1,289,368 611 31.84 83% 76% 80% 81%
13 Perl #4 9.99 156,124 820 29.82 51% 96% 61% 91%
13 Perl #3 10.17 156,584 854 30.60 96% 89% 50% 65%
13 C# .NET Core #5 10.53 1,301,756 673 33.22 85% 74% 78% 79%
17 C++ g++ #3 13.25 216,596 853 19.23 1% 44% 0% 100%
18 Go #4 14.68 398,340 829 36.02 67% 52% 77% 49%
18 OCaml #2 14.72 901,956 637 14.73 0% 100% 0% 0%
19 Racket #2 15.35 1,242,916 729 34.59 57% 99% 69% 1%
21 Matz's Ruby #3 16.43 221,312 724 48.13 100% 100% 47% 47%
21 Perl #2 16.46 204,864 710 28.53 0% 100% 73% 0%
24 Ruby #2 19.50 326,408 437 19.90 39% 17% 21% 25%
27 Perl 21.72 205,036 464 21.97 1% 100% 0% 0%
30 Ruby #9 23.75 420,348 334 24.21 0% 23% 1% 77%
33 Go 26.10 370,684 741 62.52 59% 48% 65% 68%
33 Go #3 26.18 426,100 829 64.94 50% 74% 68% 56%
34 Swift 26.88 878,976 715 52.04 18% 83% 2% 91%
34 Swift #4 27.22 1,061,144 745 53.41 92% 32% 31% 41%
40 Racket 32.27 1,024,252 541 32.49 0% 0% 0% 100%
43 Matz's Ruby #2 34.60 160,388 437 69.49 100% 100% 0% 1%
52 Matz's Ruby #9 41.70 164,244 334 83.81 1% 8% 92% 100%
53 Erlang HiPE #6 41.91 3,377,136 1048 61.09 16% 45% 22% 63%
62 Swift #2 49.53 682,716 671 49.88 0% 0% 100% 0%
Ada 2012 GNAT #6 Bad Output
Lisp SBCL #3 Failed
Lua Failed
Free Pascal Failed
Free Pascal #2 Failed