The Computer Language
24.06 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.92 19,656 457    
  Classic Fortran 38.89 19,644 608    
  OCaml #2 47.52 19,584 478    
 
 
 
× source secs mem gz cpu secs cpu load
1.0 C gcc #5 6.98 19,684 917 27.28 94% 100% 99% 99%
1.1 Rust #4 7.58 19,684 1026 29.78 99% 94% 100% 99%
1.1 Rust #5 8.00 19,684 1023 31.31 100% 99% 95% 98%
1.1 C++ g++ #5 8.00 19,712 987 31.23 98% 93% 100% 98%
1.2 Ada 2012 GNAT #3 8.07 19,688 2120 32.08 99% 99% 99% 99%
1.2 Go #3 8.36 19,656 975 33.34 99% 99% 99% 100%
1.2 F# .NET #6 8.38 31,568 1103 32.60 97% 98% 99% 93%
1.2 Chapel #2 8.40 19,596 737 33.50 100% 100% 99% 99%
1.2 C# .NET #6 8.67 30,968 1075 34.39 99% 99% 99% 99%
1.3 OCaml #4 8.93 19,572 1018 35.69 99% 99% 99% 100%
1.3 OCaml #3 8.97 19,568 1024 35.81 99% 99% 99% 100%
1.3 Rust #2 9.23 19,684 1198 36.15 94% 99% 98% 99%
1.3 C++ g++ #4 9.26 19,688 1445 36.31 100% 98% 99% 94%
1.4 C++ g++ #2 9.55 19,712 1446 37.53 94% 99% 98% 100%
1.4 Lisp SBCL #4 9.71 32,128 1531 38.27 99% 99% 99% 96%
1.4 F# .NET #5 9.75 36,612 927 38.38 97% 97% 99% 98%
1.4 Java  10.04 42,708 1289 39.47 97% 99% 99% 98%
1.5 Classic Fortran #3 10.34 19,644 1164 41.22 99% 99% 99% 100%
1.5 Free Pascal 10.62 19,604 1057 42.30 99% 99% 99% 99%
1.6 C++ g++ 10.87 19,712 1065 42.73 99% 99% 98% 96%
1.6 C# .NET #3 11.34 31,120 1117 44.67 98% 98% 98% 99%
1.7 Node.js #5 11.63 93,696 1320 46.11 99% 99% 99% 99%
1.7 Go 11.77 19,656 906 46.92 100% 99% 99% 99%
1.7 Go #2 11.83 19,656 903 47.16 99% 99% 99% 99%
1.7 Dart #5 12.10 19,656 1227 48.11 99% 99% 99% 99%
4.2 C# .NET #2 29.59 30,836 584 29.58 99% 0% 0% 0%
4.4 Lisp SBCL #5 30.39 53,120 689 30.39 100% 0% 0% 0%
4.9 Swift 33.92 19,656 457 33.91 84% 16% 0% 0%
5.2 Lisp SBCL #3 36.54 32,384 833 36.53 79% 20% 0% 0%
5.3 C++ g++ #3 36.90 19,688 600 36.90 0% 100% 0% 0%
5.6 Classic Fortran 38.89 19,644 608 38.88 100% 0% 0% 0%
5.6 Julia 38.96 243,152 441 39.05 99% 0% 0% 0%
5.7 C gcc #3 39.56 19,684 574 39.56 100% 0% 0% 0%
5.8 Java #3 40.81 42,920 1264 40.91 99% 0% 0% 0%
6.0 Dart #3 42.03 19,656 553 42.03 14% 85% 0% 0%
6.1 C gcc 42.31 19,684 514 42.31 100% 0% 0% 0%
6.4 Java #2 44.33 41,012 520 44.38 100% 0% 0% 0%
6.8 OCaml #2 47.52 19,584 478 47.51 0% 0% 0% 100%
6.9 Lisp SBCL #2 48.46 22,912 525 48.46 0% 0% 0% 100%
7.5 OCaml 52.42 19,596 529 52.42 82% 17% 0% 0%
8.0 PHP #3 56.16 19,656 1166 223.41 99% 100% 99% 99%
8.2 PHP #4 57.20 19,656 1168 226.41 99% 100% 98% 99%
8.8 Dart #2 61.71 19,656 510 61.70 0% 0% 100% 0%
9.4 Erlang 65.58 55,108 1044 258.75 99% 98% 99% 97%
13 F# .NET 93.67 49,764 558 99.25 2% 6% 60% 37%
20 Ruby yjit #2 140.37 21,120 1462 8 min 100% 96% 89% 97%
27 PHP #2 189.64 19,656 447 189.63 0% 100% 0% 0%
32 PHP 226.44 19,656 488 226.44 0% 0% 0% 100%
42 Python 3 #4 291.14 19,652 960 19 min 99% 97% 99% 99%
44 Haskell GHC 5 min 19,672 567 5 min 23% 28% 19% 30%
63 Perl #2 7 min 19,684 577 29 min 100% 99% 99% 99%
65 VW Smalltalk 7 min 55,040 916 7 min 0% 100% 0% 0%
86 Lua 10 min 19,652 469 10 min 100% 0% 0% 0%
128 Python 3 #6 14 min 19,652 391 14 min 100% 0% 0% 0%
196 Perl #3 22 min 19,684 433 22 min 0% 100% 0% 0%
203 Ruby yjit 23 min 20,864 391 23 min 0% 54% 45% 0%
259 Perl 30 min 19,684 463 30 min 0% 100% 0% 0%
623 Matz's Ruby #2 1h 12 min 19,856 1462 4h 38 min 99% 93% 94% 97%
  Matz's Ruby 3h 12 min 19,856 391 3h 12 min 0% 0% 100% 0%
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.17 19,684 1582 8.56 97% 99% 99% 99%
0.3 C# .NET #8 2.22 31,568 1485 8.64 99% 96% 97% 97%
0.5 C++ g++ #6 3.26 19,712 1535 12.91 97% 100% 99% 99%
0.5 Rust #6 3.82 19,684 1260 15.13 100% 100% 99% 97%
1.2 Julia #3 8.07 258,348 896 30.56 94% 94% 94% 96%
1.2 Julia #2 8.40 265,860 1077 31.42 93% 93% 93% 94%
1.2 Swift #3 8.57 19,656 1103 33.94 100% 98% 98% 100%
1.3 C# .NET #9 9.08 32,348 1232 36.00 99% 99% 99% 99%
1.6 C gcc #2 10.85 19,684 1563 42.52 99% 94% 98% 100%
1.6 Haskell GHC #5 11.32 19,672 850 44.70 96% 99% 99% 99%
2.0 C++ g++ #7 13.96 19,712 1156 13.96 0% 0% 100% 0%
2.0 C gcc #4 14.21 19,684 1190 14.21 100% 0% 0% 0%
2.2 Haskell GHC #6 15.23 21,248 1123 59.66 97% 99% 98% 98%
4.3 Racket #3 30.05 77,624 1109 110.20 99% 95% 90% 83%
6.4 Haskell GHC #4 44.75 19,672 671 45.35 0% 0% 0% 100%
6.7 Haskell GHC #2 46.99 22,400 815 138.38 73% 75% 74% 75%
16 Racket #2 113.01 74,852 916 113.00 100% 0% 0% 0%
20 Racket 142.49 74,620 655 142.48 0% 100% 0% 0%