The Computer Language
Benchmarks Game

fannkuch-redux

We accept something intermediate between chaos and rigidity — enough flex & slop & play to allow for Haskell programs that are not just mechanically translated from Fortran; enough similarity in the basic workloads & tested results.

Programming language advocates and curious programmers have contributed new programs and introduced newer techniques. 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. Always look at the source code.

× source secs mem gz busy cpu load
1.0 C gcc #5 8.61 880 910 33.96 95% 100% 99% 100%
1.1 Ada 2012 GNAT #3 9.89 4,336 2113 39.46 100% 100% 100% 100%
1.2 C++ g++ #5 10.08 1,884 980 39.72 100% 100% 99% 95%
1.2 Swift #3 10.24 7,484 1097 40.48 100% 100% 98% 98%
1.3 Rust #4 11.13 876 1020 43.78 99% 95% 100% 100%
1.3 Rust #3 11.13 936 1020 43.55 100% 100% 92% 100%
1.3 Julia #2 11.36 192,580 1067 42.32 95% 91% 93% 93%
1.5 Fortran Intel #3 12.56 11,040 1158 50.16 100% 100% 100% 100%
1.5 Rust #2 13.32 1,000 1191 52.13 100% 99% 98% 94%
1.7 Java OpenJ9 14.36 55,264 1282 56.39 98% 99% 97% 99%
1.8 Lisp SBCL #4 15.42 32,896 1527 59.85 98% 92% 99% 100%
1.8 Chapel 15.59 4,444 728 62.11 100% 100% 99% 100%
1.8 C gcc #2 15.73 944 1557 61.53 94% 98% 100% 99%
1.9 OCaml #3 16.33 28,692 1017 65.22 100% 100% 100% 100%
1.9 C# .NET Core #7 16.50 31,284 1189 65.39 99% 99% 99% 100%
1.9 OCaml #4 16.70 19,680 1004 66.76 100% 100% 100% 100%
1.9 F# .NET Core #8 16.75 34,468 949 64.96 98% 97% 99% 95%
2.0 F# .NET Core #7 16.85 34,692 953 65.34 94% 98% 98% 99%
2.0 F# .NET Core #9 16.88 35,228 924 65.60 98% 97% 99% 95%
2.0 C++ g++ #4 16.92 2,112 1439 66.06 100% 98% 93% 100%
2.0 C++ g++ #2 17.33 2,112 1440 67.67 93% 100% 98% 100%
2.0 Go #2 17.53 11,672 896 70.01 100% 100% 100% 100%
2.0 C# .NET Core #6 17.53 31,240 1068 69.57 99% 99% 99% 99%
2.0 Go 17.54 1,468 900 69.95 100% 100% 100% 100%
2.1 F# .NET Core #6 17.85 33,864 1025 69.59 98% 98% 99% 95%
2.1 Java  17.93 34,616 1282 70.89 98% 100% 98% 99%
2.1 Free Pascal 17.95 1,860 1050 71.73 100% 100% 100% 100%
2.1 Haskell GHC #5 18.37 4,296 842 72.64 100% 100% 96% 100%
2.2 C++ g++ 18.56 1,956 1059 72.25 99% 93% 97% 100%
2.2 C# .NET Core #5 18.60 31,636 1049 71.84 98% 99% 99% 91%
2.2 Haskell GHC #6 18.61 4,264 1113 73.17 98% 99% 96% 100%
2.2 C# .NET Core #4 18.75 30,980 1172 74.04 99% 99% 99% 98%
2.3 F# .NET Core #5 19.82 34,812 912 77.25 97% 98% 96% 99%
2.4 C# .NET Core #3 20.62 30,972 1096 81.07 99% 99% 97% 98%
2.7 C gcc #4 23.05 844 1183 23.20 0% 100% 0% 0%
2.8 C++ g++ #7 23.98 840 1150 24.12 0% 0% 100% 0%
2.8 Node js #2 24.14 52,860 1316 95.71 99% 99% 99% 99%
2.8 F# .NET Core #3 24.27 35,016 945 88.15 83% 84% 99% 98%
6.1 Lisp SBCL #5 52.69 49,568 681 53.41 0% 1% 0% 100%
6.4 Java OpenJ9 #3 54.85 53,412 1257 56.03 10% 1% 1% 90%
6.4 Julia 54.89 163,120 434 55.56 100% 0% 0% 1%
7.2 Java #3 61.98 34,360 1257 62.80 0% 0% 1% 100%
7.2 C gcc #3 62.31 780 567 63.08 1% 100% 0% 0%
7.2 C# .NET Core #2 62.37 31,024 564 63.12 0% 74% 27% 0%
7.6 Swift 65.63 6,632 451 66.31 1% 100% 0% 0%
7.7 F# .NET Core #4 66.26 32,852 612 66.94 1% 0% 0% 100%
7.8 Lisp SBCL #3 67.16 32,372 826 67.85 0% 100% 1% 0%
8.1 C gcc 69.51 840 508 70.15 0% 0% 100% 1%
8.1 C++ g++ #3 69.87 844 593 71.02 1% 1% 0% 100%
8.2 Haskell GHC #4 70.58 4,028 665 281.31 100% 100% 100% 100%
8.3 Fortran Intel 71.25 1,952 599 72.02 0% 100% 1% 0%
8.6 Java #2 74.36 34,972 514 75.40 0% 1% 1% 100%
8.7 Node js #4 74.67 31,816 473 75.90 1% 0% 100% 1%
8.7 TypeScript #4 74.68 31,936 495 75.17 100% 0% 0% 0%
9.2 C# .NET Core 78.92 31,128 520 83.79 39% 39% 6% 22%
10 OCaml #2 85.48 2,852 473 86.27 0% 0% 100% 0%
10 F# .NET Core #2 86.74 33,360 548 87.60 1% 0% 0% 100%
10 Java OpenJ9 #2 87.85 55,412 514 89.62 1% 2% 100% 0%
11 Erlang HiPE 91.12 23,632 1038 5 min 98% 98% 100% 98%
11 Lisp SBCL #2 92.30 17,924 517 93.18 100% 0% 1% 0%
11 Node js 92.85 31,920 471 94.03 100% 0% 0% 1%
11 Dart #2 97.12 129,128 495 98.18 1% 99% 0% 0%
11 OCaml 97.90 2,844 524 99.55 55% 43% 3% 1%
11 Haskell GHC #2 98.89 9,556 808 5 min 76% 76% 77% 77%
12 Racket #3 101.66 46,588 1101 6 min 98% 97% 100% 99%
14 TypeScript #3 121.80 31,840 454 123.46 0% 1% 1% 100%
15 Dart snapshot #2 127.62 78,448 495 129.25 0% 100% 1% 0%
15 Racket CS #3 129.77 77,452 1101 8 min 100% 100% 99% 95%
16 TypeScript #2 135.23 31,772 445 140.21 0% 2% 2% 100%
20 Dart aot #2 168.76 13,948 495 171.12 1% 100% 1% 0%
25 F# .NET Core 218.39 44,160 551 227.56 42% 30% 30% 3%
26 PHP #3 226.26 21,980 1160 15 min 100% 99% 100% 100%
34 Racket #2 291.01 44,168 908 9 min 74% 100% 1% 26%
37 Racket 5 min 44,208 649 10 min 100% 54% 49% 3%
47 Racket CS #2 6 min 77,676 908 6 min 0% 100% 1% 0%
52 Haskell GHC 7 min 6,040 559 9 min 26% 24% 28% 44%
56 JRuby #2 8 min 767,988 1432 31 min 96% 98% 96% 97%
57 Python 3 #4 8 min 47,864 950 32 min 98% 100% 100% 96%
61 Racket CS 8 min 78,348 649 8 min 100% 0% 0% 1%
65 Ruby #2 9 min 14,492 1454 35 min 100% 95% 97% 92%
66 Perl #2 9 min 11,148 570 37 min 100% 97% 97% 97%
82 VW Smalltalk 11 min 54,572 916 12 min 100% 1% 1% 0%
84 Pharo Smalltalk 12 min 80,412 865 12 min 1% 0% 100% 1%
98 JRuby 14 min 762,984 384 14 min 76% 1% 1% 24%
108 PHP #2 15 min 7,908 441 15 min 1% 100% 0% 0%
153 Lua 21 min 1,340 462 22 min 0% 100% 1% 1%
157 PHP 22 min 7,776 482 22 min 1% 1% 9% 92%
193 Ruby 27 min 15,772 384 28 min 2% 100% 0% 2%
215 Perl #3 30 min 4,728 427 31 min 46% 0% 55% 0%
235 Python 3 #6 33 min 7,644 385 33 min 0% 100% 1% 0%
270 Perl 38 min 4,664 457 39 min 74% 1% 26% 0%
  Matz's Ruby 5h 30 min 4,736 384 5h 34 min 23% 8% 29% 40%
Haskell GHC #3 Make Error
Matz's Ruby #2 Failed