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