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.09 7,500 1097 40.15 100% 99% 99% 100%
1.2 Rust #4 10.29 872 1020 40.17 92% 100% 99% 100%
1.2 Rust #3 10.34 872 1020 40.36 100% 93% 100% 98%
1.3 Julia #2 11.34 178,916 1067 43.47 95% 95% 95% 100%
1.4 Rust #2 11.82 1,004 1191 46.28 99% 98% 100% 94%
1.4 Fortran Intel #3 12.37 11,040 1158 49.40 100% 100% 100% 100%
1.8 Lisp SBCL #4 15.42 32,896 1527 59.85 98% 92% 99% 100%
1.8 Chapel 15.59 4,080 728 62.16 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 OCaml #4 16.70 19,680 1004 66.76 100% 100% 100% 100%
1.9 C# .NET Core #7 16.73 35,736 1189 66.42 99% 100% 99% 99%
1.9 F# .NET Core #9 16.75 37,412 924 65.35 95% 98% 98% 99%
2.0 C++ g++ #4 16.92 2,112 1439 66.06 100% 98% 93% 100%
2.0 F# .NET Core #8 17.04 38,168 949 66.11 94% 97% 99% 98%
2.0 Java  17.04 34,236 1282 67.30 99% 98% 100% 98%
2.0 Go 17.24 1,432 900 68.76 100% 100% 100% 100%
2.0 F# .NET Core #7 17.26 38,068 953 67.09 98% 95% 99% 97%
2.0 C++ g++ #2 17.33 2,112 1440 67.67 93% 100% 98% 100%
2.0 Go #2 17.45 11,692 896 69.65 100% 100% 100% 100%
2.0 C# .NET Core #6 17.50 35,072 1068 69.54 100% 99% 99% 99%
2.1 Free Pascal 17.95 1,860 1050 71.73 100% 100% 100% 100%
2.1 F# .NET Core #6 18.04 37,104 1025 70.15 95% 97% 98% 100%
2.1 Haskell GHC #5 18.12 4,264 842 71.41 96% 100% 100% 99%
2.2 C++ g++ 18.56 1,956 1059 72.25 99% 93% 97% 100%
2.2 Haskell GHC #6 18.65 4,208 1113 73.03 97% 100% 98% 96%
2.2 C# .NET Core #5 19.04 34,920 1049 73.84 91% 99% 100% 98%
2.2 C# .NET Core #4 19.06 35,076 1172 75.54 99% 99% 99% 99%
2.3 F# .NET Core #5 19.65 38,288 912 77.09 98% 98% 99% 98%
2.4 C# .NET Core #3 20.56 34,964 1096 80.85 99% 98% 99% 97%
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.23 53,204 1316 96.12 99% 99% 99% 99%
2.9 F# .NET Core #3 24.64 38,308 945 88.95 82% 82% 99% 98%
2.9 Substrate VM 25.34 2,956 1282 100.59 100% 100% 99% 98%
6.1 Lisp SBCL #5 52.69 49,568 681 53.41 0% 1% 0% 100%
6.4 Julia 55.13 154,968 434 55.96 1% 100% 0% 0%
7.2 C gcc #3 62.31 780 567 63.08 1% 100% 0% 0%
7.2 Java #3 62.35 34,304 1257 63.29 1% 100% 1% 0%
7.5 C# .NET Core #2 64.69 35,660 564 65.60 0% 1% 0% 100%
7.7 F# .NET Core #4 66.73 37,448 612 67.94 1% 100% 0% 1%
7.8 Lisp SBCL #3 67.16 32,372 826 67.85 0% 100% 1% 0%
7.9 Swift 68.16 6,816 451 68.89 0% 100% 0% 1%
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 Java #2 70.54 34,744 514 72.98 2% 0% 100% 1%
8.2 Haskell GHC #4 70.81 3,280 665 282.22 99% 100% 100% 100%
8.3 Fortran Intel 71.29 1,956 599 71.98 1% 100% 0% 0%
8.7 Node js #4 74.94 31,144 473 75.78 100% 0% 1% 0%
8.7 TypeScript #4 74.97 31,484 495 75.99 0% 100% 1% 0%
9.4 C# .NET Core 80.88 35,848 520 82.35 1% 1% 80% 20%
10 OCaml #2 85.48 2,852 473 86.27 0% 0% 100% 0%
10 F# .NET Core #2 85.88 36,972 548 87.25 1% 100% 0% 1%
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.61 31,420 471 93.17 0% 0% 1% 100%
11 Dart snapshot #2 96.92 76,032 495 97.72 0% 0% 1% 100%
11 Dart #2 97.09 130,492 495 98.18 1% 100% 0% 1%
11 OCaml 97.90 2,844 524 99.55 55% 43% 3% 1%
12 Substrate VM #3 100.19 2,812 1257 101.35 0% 100% 1% 0%
12 Haskell GHC #2 101.45 9,336 808 5 min 76% 78% 78% 75%
12 Racket #3 101.66 46,588 1101 6 min 98% 97% 100% 99%
13 Substrate VM #2 111.63 2,784 514 112.64 0% 100% 0% 1%
14 Truffle Ruby #2 122.51 767,568 1454 5 min 99% 91% 40% 41%
14 TypeScript #3 124.07 31,456 454 125.39 0% 0% 1% 100%
15 Racket CS #3 129.77 77,452 1101 8 min 100% 100% 99% 95%
16 TypeScript #2 135.37 31,532 445 136.94 100% 0% 1% 0%
16 Truffle Ruby 138.32 589,476 384 154.64 10% 5% 4% 92%
20 Dart aot #2 168.80 10,680 495 171.04 25% 1% 75% 0%
26 PHP #3 226.26 21,980 1160 15 min 100% 99% 100% 100%
27 F# .NET Core 235.09 67,920 551 240.98 52% 24% 24% 2%
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%
55 Python 3 #4 7 min 49,972 950 31 min 100% 97% 100% 99%
56 JRuby #2 8 min 767,988 1432 31 min 96% 98% 96% 97%
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%
229 Python 3 #6 32 min 7,448 385 33 min 0% 1% 100% 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
Haskell GHC Timed Out
Matz's Ruby #2 Failed