The Computer Language
24.04 Benchmarks Game

fannkuch-redux

First a few simple programs.

Then optimisations, multicore parallelism, [pdf] vector parallelism.

Last hand-written vector instructions and "unsafe" programs.

  source secs mem gz    
  Swift 33.85 19,660 457    
  Classic Fortran 38.73 19,724 608    
  OCaml #2 46.91 19,668 478    
 
 
 
× source secs mem gz cpu secs cpu load
1.0 C gcc #5 6.91 19,644 917 27.13 99% 100% 99% 94%
1.0 Rust #4 7.10 19,652 1026 27.94 94% 99% 99% 99%
1.1 Rust #5 7.88 19,784 1023 30.85 94% 98% 100% 99%
1.2 C++ g++ #5 7.97 19,788 987 31.14 98% 99% 100% 93%
1.2 Ada 2012 GNAT #3 8.21 19,784 2120 32.46 99% 99% 99% 99%
1.2 Go #3 8.33 19,664 975 33.25 100% 99% 100% 99%
1.2 F# .NET #6 8.37 31,488 1103 32.55 99% 93% 98% 99%
1.2 Chapel #2 8.39 19,772 737 33.40 99% 99% 99% 99%
1.3 C# .NET #6 8.66 30,828 1075 34.31 99% 99% 99% 99%
1.3 OCaml #4 8.93 19,796 1018 35.73 100% 100% 100% 100%
1.3 OCaml #3 8.94 19,796 1024 35.72 100% 99% 100% 99%
1.4 C++ g++ #4 9.47 19,660 1445 37.11 99% 99% 98% 95%
1.4 C++ g++ #2 9.82 19,656 1446 38.58 100% 95% 99% 98%
1.4 F# .NET #5 9.84 36,572 927 38.67 99% 97% 98% 98%
1.5 Lisp SBCL #4 10.13 33,152 1531 39.42 93% 98% 98% 99%
1.5 Classic Fortran #3 10.14 19,724 1164 40.45 99% 99% 99% 100%
1.5 Free Pascal 10.58 19,664 1032 42.13 99% 100% 99% 99%
1.5 C++ g++ 10.59 19,660 1065 41.61 100% 99% 95% 98%
1.6 Java  10.98 42,812 1289 43.36 98% 99% 98% 99%
1.7 C# .NET #3 11.42 30,848 1117 44.84 99% 98% 98% 99%
1.7 Node js #5 11.57 86,784 1320 45.93 99% 99% 99% 99%
1.7 Go 11.74 19,664 906 46.77 99% 99% 100% 99%
1.7 Go #2 11.79 19,664 903 46.97 99% 99% 99% 99%
1.8 Dart #5 12.74 19,532 1227 50.64 99% 99% 99% 99%
2.7 Rust #2 18.53 19,780 1198 73.32 97% 99% 99% 99%
4.3 C# .NET #2 29.55 30,632 584 29.53 0% 92% 0% 7%
4.4 Lisp SBCL #5 30.39 49,920 689 30.38 0% 100% 0% 0%
4.9 Swift 33.85 19,660 457 33.85 0% 100% 0% 0%
5.3 C++ g++ #3 36.80 19,660 600 36.80 0% 0% 100% 0%
5.4 Lisp SBCL #3 37.50 32,768 833 37.50 100% 0% 0% 0%
5.6 Classic Fortran 38.73 19,724 608 38.73 0% 0% 0% 100%
5.6 Julia 38.89 240,772 441 38.98 0% 0% 0% 99%
5.7 C gcc #3 39.57 19,516 574 39.57 0% 100% 0% 0%
5.9 Java #3 40.76 42,844 1264 40.83 0% 99% 0% 0%
5.9 Dart #3 41.08 19,532 553 41.08 100% 0% 0% 0%
6.1 C gcc 42.24 19,640 514 42.24 0% 100% 0% 0%
6.4 Java #2 44.03 40,916 520 44.09 0% 100% 0% 0%
6.8 OCaml #2 46.91 19,668 478 46.91 100% 0% 0% 0%
7.1 Lisp SBCL #2 49.10 19,668 525 49.09 0% 100% 0% 0%
7.5 OCaml 51.57 19,668 529 51.57 0% 0% 0% 100%
7.9 PHP #3 54.65 19,392 1166 217.72 99% 100% 99% 99%
8.0 PHP #4 55.26 19,520 1168 219.72 100% 99% 99% 99%
8.7 Dart #2 59.91 19,532 510 59.91 100% 0% 0% 0%
9.7 Erlang 67.13 42,432 1044 264.91 99% 98% 99% 97%
13 F# .NET 91.91 49,912 558 96.68 3% 64% 15% 25%
20 Ruby #2 139.77 21,120 1462 8 min 87% 97% 99% 99%
27 PHP #2 188.01 19,392 447 188.00 0% 100% 0% 0%
33 PHP 225.18 19,392 488 225.17 0% 0% 100% 0%
41 Haskell GHC 281.08 19,644 567 287.17 26% 30% 24% 23%
44 Python 3 #4 5 min 19,652 960 19 min 99% 99% 97% 100%
62 Perl #2 7 min 19,656 577 28 min 99% 100% 99% 99%
65 VW Smalltalk 7 min 55,168 916 7 min 54% 45% 0% 0%
87 Lua 10 min 19,664 469 10 min 0% 0% 100% 0%
149 Python 3 #6 17 min 19,652 391 17 min 0% 2% 97% 0%
181 Perl #3 20 min 19,656 433 20 min 0% 0% 100% 0%
200 Ruby 23 min 20,992 391 23 min 0% 100% 0% 0%
249 Perl 28 min 19,656 463 28 min 0% 96% 0% 3%
615 Matz's Ruby #2 1h 10 min 10,952 1455 4h 31 min 95% 97% 98% 96%
  Matz's Ruby 3h 16 min 11,172 384 3h 16 min 17% 1% 52% 30%
C# .NET #7 Bad Output
Haskell GHC #3 Make Error
 
 
  hand-written vector instructions | "unsafe"
 
× source secs mem gz cpu secs cpu load
0.3 C gcc #6 2.16 19,516 1582 8.53 97% 99% 99% 99%
0.3 C# .NET #8 2.24 31,032 1485 8.62 99% 96% 96% 96%
0.5 C++ g++ #6 3.25 19,788 1535 12.89 99% 99% 99% 98%
0.6 Rust #6 4.00 19,652 1260 15.86 99% 100% 98% 99%
1.2 Julia #3 8.04 257,756 896 30.44 94% 94% 92% 98%
1.2 Julia #2 8.40 261,236 1077 31.34 94% 93% 95% 91%
1.2 Swift #3 8.58 19,660 1103 33.96 99% 98% 98% 100%
1.3 C# .NET #9 9.07 31,908 1232 35.94 99% 99% 99% 99%
1.6 C gcc #2 11.16 19,644 1563 43.66 98% 99% 99% 94%
1.6 Haskell GHC #5 11.28 19,644 850 44.70 98% 99% 99% 99%
2.0 C++ g++ #7 13.93 19,660 1156 13.93 0% 0% 100% 0%
2.1 C gcc #4 14.20 19,516 1190 14.20 100% 0% 0% 0%
2.2 Haskell GHC #6 15.24 21,632 1123 59.78 98% 98% 98% 99%
4.4 Racket #3 30.20 77,300 1109 114.95 88% 96% 96% 99%
6.7 Haskell GHC #2 46.08 25,600 815 139.01 78% 74% 78% 76%
7.3 Haskell GHC #4 50.67 19,768 671 51.56 45% 29% 14% 12%
16 Racket #2 113.80 76,180 916 113.79 0% 0% 100% 0%
21 Racket 145.19 75,048 655 145.18 0% 0% 100% 0%