The Computer Language
25.02 Benchmarks Game

spectral-norm

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  
  Ruby #8 175.57 19,132 294  
  Python 3 #8 6 min 12,833 334  
  Node.js #8 6.53 66,380 355  
  PHP #8 135.79 16,601 357  
  C gcc #8 5.41 3,219 389  
  Java #8 5.47 62,308 453  
 
 
  Here are the crowd sourced programs —  
 
 
× source secs mem gz cpu secs
1.0 Ruby #8 175.57 19,132 294 175.51
1.1 Chapel 1.50 10,109 322 5.77
1.1 Node.js 5.41 66,429 326 5.41
1.1 Ruby #4 126.05 20,025 333 125.99
1.1 Python 3 #8 6 min 12,833 334 6 min
1.1 Python 3 #6 5 min 13,660 334 5 min
1.1 Lua 78.75 3,686 335 78.73
1.2 Perl 96.09 10,101 340 96.05
1.2 Perl #5 96.18 10,162 346 96.15
1.2 Chapel #2 0.79 9,916 348 2.90
1.2 Perl #2 8 min 9,581 350 8 min
1.2 Node.js #8 6.53 66,380 355 6.53
1.2 PHP #8 135.79 16,601 357 135.74
1.3 Julia #2 2.83 414,999 377 5.75
1.3 OCaml #2 5.34 6,074 383 5.33
1.3 C gcc #8 5.41 3,219 389 5.40
1.4 PHP #2 132.84 16,810 403 132.78
1.4 Swift #8 5.36 24,936 411 5.35
1.4 Python 3 #4 90.37 34,693 415 5 min
1.4 Go 5.34 4,059 417 5.35
1.4 Node.js #7 5.40 65,417 420 5.40
1.4 Dart aot #8 10.88 9,560 422 10.87
1.4 Python 3 #7 109.91 34,578 425 7 min
1.5 Free Pascal 11.81 532 429 11.80
1.5 Go #8 5.34 3,838 429 5.35
1.5 Julia #4 1.30 315,802 435 3.71
1.5 C# naot #8 5.35 6,820 441 5.34
1.5 Racket 29.73 129,208 452 29.68
1.5 Java naot #8 5.35 20,886 453 5.34
1.6 C++g++ 5.34 5,292 459 5.34
1.6 Dart aot 5.34 8,946 468 5.34
1.6 C gcc #3 1.43 4,080 470 5.69
1.7 Lisp SBCL #6 5.36 29,557 512 5.35
1.7 Erlang 63.91 68,399 513 63.93
1.8 Intel Fortran #2 2.67 2,331 520 2.67
1.8 Java naot 5.36 25,215 521 5.35
1.9 Free Pascal #2 1.46 3,793 548 5.72
1.9 Go #4 1.43 4,174 555 5.69
1.9 Perl #4 24.85 14,885 562 98.03
2.1 Swift #3 1.45 13,705 607 5.70
2.2 Lisp SBCL 5.37 29,782 639 5.35
2.2 Intel Fortran #3 0.72 5,214 644 2.85
2.2 Free Pascal #3 1.46 3,879 656 5.72
2.3 Go #2 1.51 4,317 674 5.70
2.3 Pharo Smalltalk 53.39 142,340 683 53.68
2.5 Ada 2012 GNAT 5.35 6,091 725 5.34
2.5 F# #4 1.60 46,375 738 5.86
2.6 Erlang #2 11.05 76,771 753 42.67
2.6 Java naot #3 1.47 29,483 762 5.72
2.6 Ruby #5 56.52 43,725 764 207.29
2.6 Lisp SBCL #7 1.47 29,258 769 5.72
2.7 Lisp SBCL #9 1.48 28,799 799 5.72
2.8 Rust #4 0.72 4,047 823 2.85
2.9 Perl #3 130.52 14,729 857 8 min
2.9 F# #2 1.59 44,683 864 5.83
3.0 C# naot #3 1.48 6,808 890 5.79
3.0 Lisp SBCL #3 1.47 29,598 893 5.72
3.1 Lisp SBCL #2 1.48 29,274 920 5.72
3.3 Java naot #2 1.47 26,616 956 5.71
3.4 Haskell GHC #4 1.50 10,088 994 5.71
3.4 Node.js #6 1.61 114,618 1002 6.03
3.7 C# naot #2 1.47 6,644 1084 5.72
3.9 PHP 18.29 24,682 1157 72.34
4.0 Dart aot #2 3.31 27,660 1173 12.62
4.1 Dart aot #6 1.47 18,973 1202 5.71
4.1 PHP #3 35.62 26,657 1214 141.20
4.4 C++ g++ #7 1.53 4,071 1284 6.05
5.9 Ada 2012 GNAT #3 1.49 8,475 1725 5.72
C gcc #2 Empty
Rust #7 Empty
 
 
  * possible hand-written vector instructions or "unsafe"
 
× source secs mem gz cpu secs
1.4 * Haskell GHC #2 15.62 12,702 410 15.72
1.8 * Racket #2 15.19 126,857 539 15.14
2.0 * C gcc #5 0.72 3,858 576 2.85
2.2 * Racket #3 3.97 128,840 639 14.86
2.4 * F# #6 0.95 47,010 697 3.31
2.6 * C# naot #5 0.74 8,057 776 2.88
3.1 * C gcc #7 0.72 4,067 906 2.85
3.6 * C++ g++ #5 1.33 5,820 1050 5.27
3.6 * C++ g++ #6 0.72 3,981 1050 2.86
3.6 * Rust #3 0.74 4,121 1060 2.93
3.6 * Rust #5 0.72 4,018 1062 2.85
3.8 * Rust #2 0.72 4,145 1117 2.86
3.9 * Rust #6 0.72 3,981 1132 2.85
3.9 * C gcc #4 0.72 3,719 1145 2.86
4.1 * C gcc #6 0.40 3,199 1203 1.59
4.3 * Rust 0.72 4,104 1262 2.86
9.4 * Ada 2012 GNAT #4 0.77 8,569 2777 2.98