The Computer Language
25.01 Benchmarks Game

fannkuch-redux

First, here are half-a-dozen naive un-optimised single-thread #8 programs transliterated line-by-line literal style into different programming languages from the same original —

  source secs mem gz  
  C gcc #8 39.34 2,343 483  
  Java #8 44.98 60,264 517  
  Node.js #8 58.20 63,136 452  
  PHP #8 28 min 16,335 477  
  Ruby #8 34 min 17,691 418  
  Python 3 #8 40 min 11,874 414  
 
 
  Here are the crowd sourced programs —  
 
 
× source secs mem gz cpu secs
1.0 Rust #4 6.90 4,141 1026 27.13
1.0 C gcc #5 7.28 2,949 917 28.26
1.1 Rust #5 7.47 3,985 1023 29.32
1.1 C++ g++ #5 7.86 5,792 987 30.73
1.1 Lisp SBCL #5 30.88 58,196 689 30.86
1.2 C# naot #2 31.30 6,124 584 31.28
1.2 F#  #6 8.38 40,747 1103 32.47
1.2 Go #3 8.36 3,846 975 33.33
1.2 Chapel #2 8.48 9,699 737 33.63
1.3 Swift #8 34.68 13,476 470 34.67
1.3 C++ g++ #4 8.91 5,710 1445 35.03
1.3 OCaml #3 8.84 36,123 1024 35.14
1.3 C++ g++ #2 9.14 5,698 1446 35.85
1.3 Rust #2 9.16 3,985 1198 35.91
1.3 Lisp SBCL #3 36.28 37,208 833 36.26
1.3 Ada 2012 GNAT #3 9.15 7,684 2120 36.42
1.3 OCaml #4 9.14 11,338 1018 36.44
1.4 C gcc #3 36.84 2,343 574 36.83
1.4 Lisp SBCL #4 9.41 38,060 1531 36.94
1.4 Java  #3 38.64 61,968 1264 37.16
1.4 C++ g++ #3 37.89 2,351 600 37.88
1.4 Haskell GHC #3 9.68 9,560 1184 37.96
1.4 F# #5 9.80 46,563 927 38.52
1.4 Intel Fortran #3 9.67 12,128 1164 38.54
1.4 C gcc #8 39.34 2,343 483 39.33
1.5 C gcc 39.65 2,343 514 39.64
1.5 Intel Fortran 40.21 2,179 608 40.20
1.5 C# naot #6 10.13 6,734 1075 40.44
1.5 Dart aot #3 40.90 8,671 553 40.89
1.5 C++ g++ 10.53 5,534 1065 41.31
1.6 Free Pascal 10.66 3,666 1057 42.37
1.6 Julia 42.56 309,703 441 42.59
1.6 Java 10.87 62,976 1289 42.76
1.6 C# naot #3 11.02 6,668 1117 43.52
1.6 Node.js #5 11.14 109,359 1320 44.00
1.6 C# naot #8 44.64 6,173 519 44.62
1.7 Java #8 44.98 60,264 517 45.06
1.7 Java #2 45.71 60,203 520 45.75
1.7 OCaml #2 45.79 4,784 478 45.78
1.7 Go #8 46.15 3,207 500 46.27
1.8 Lisp SBCL #2 48.05 27,795 525 48.02
1.8 Go 12.27 4,903 906 49.03
1.8 Go #2 12.36 16,966 903 49.33
1.8 Dart aot #5 12.56 10,400 1227 49.85
1.9 OCaml 51.28 4,796 529 51.27
2.1 Dart aot #2 57.85 8,950 510 57.84
2.1 Node.js #8 58.20 63,136 452 58.17
2.6 Dart aot #8 70.14 8,692 508 70.12
4.0 F# 156.48 47,206 558 109.61
9.5 Erlang 65.23 64,389 1044 256.69
11 Haskell GHC 291.77 15,471 567 5 min
17 PHP #2 7 min 16,339 447 7 min
18 Pharo Smalltalk 8 min 143,667 871 8 min
19 PHP #4 130.83 19,780 1168 8 min
19 PHP #3 133.01 19,767 1166 8 min
22 PHP 9 min 16,400 488 9 min
22 Ruby  #2 154.32 23,679 1462 9 min
25 Lua 11 min 3,363 469 11 min
35 Python 3 #6 15 min 11,874 391 15 min
45 Python 3 #4 5 min 28,701 960 20 min
47 Perl #3 21 min 7,512 433 21 min
53 Ruby 23 min 17,695 391 23 min
64 Perl #2 7 min 16,654 577 28 min
64 PHP #8 28 min 16,335 477 28 min
68 Perl 30 min 7,524 463 30 min
76 Ruby #8 34 min 17,691 418 34 min
91 Python 3 #8 40 min 11,874 414 40 min
 
 
  * possible hand-written vector instructions | "unsafe"
 
× source secs mem gz cpu secs
0.3 * C gcc #6 2.14 2,712 1582 8.44
0.3 * C# naot #5 2.16 6,484 1485 8.57
0.5 * C++ g++ #6 3.33 5,800 1535 13.11
0.5 * C++ g++ #7 14.06 2,449 1156 14.04
0.5 * C gcc #4 14.05 2,351 1190 14.04
0.6 * Rust #6 3.81 4,137 1260 15.15
1.2 * Julia #2 8.59 333,136 1077 32.00
1.2 * C# naot #9 8.11 6,554 1232 32.33
1.2 * Swift #3 8.22 13,808 1103 32.43
1.3 * Julia #3 9.44 333,103 896 35.58
1.5 * C gcc #2 10.18 2,695 1563 39.92
1.5 * Haskell GHC #4 40.19 10,039 671 40.73
1.5 * Haskell GHC #5 10.33 9,748 850 40.84
1.7 * Haskell GHC #6 12.54 27,533 1123 45.26
4.1 * Racket #2 112.32 126,648 916 112.25
4.1 * Racket #3 30.20 129,585 1109 112.38
4.8 * Haskell GHC #2 44.38 28,840 815 131.41
5.1 * Racket 139.26 127,599 655 139.19