The Computer Language
25.02 Benchmarks Game

mandelbrot

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 25.17 2,355 412  
  Java #8 27.72 63,836 441  
  Node.js #8 70.31 68,338 412  
  PHP #8 7 min 49,336 419  
  Ruby #8 15 min 50,926 364  
  Python 3 #8 26 min 45,031 379  
 
 
  Here are the crowd sourced programs —  
 
 
× source secs mem gz cpu secs
1.0 Rust #7 1.10 35,906 763 4.34
1.0 Rust #2 1.10 35,754 770 4.37
1.0 Rust #5 1.12 36,311 725 4.37
1.0 Chapel #3 1.18 42,156 582 4.51
1.1 Rust #3 1.15 14,615 1013 4.57
1.1 Julia #7 1.54 357,138 629 4.85
1.1 Julia #2 1.57 355,762 634 4.95
1.2 Julia #3 1.61 376,463 589 5.17
1.2 Julia #4 2.07 368,173 583 5.18
1.3 Julia #5 1.76 381,813 580 5.83
1.4 Julia #6 2.25 368,599 571 5.87
1.5 C gcc #5 1.64 35,582 788 6.32
1.8 Rust 2.01 42,631 874 7.89
2.0 Intel Fortran #6 2.72 85,975 669 8.55
2.1 C++g++ #0 2.36 38,281 2752 9.31
3.1 C++ g++ #5 13.47 36,884 596 13.47
3.1 C++ g++ #9 3.53 37,863 732 13.59
3.5 Go #4 3.77 37,970 912 15.01
3.5 Go #3 3.78 38,101 900 15.02
3.6 Free Pascal #5 3.91 35,529 980 15.52
3.6 Java naot #6 3.96 58,348 808 15.66
3.6 Dart aot #3 15.69 17,887 620 15.69
3.6 C gcc #9 4.07 35,394 700 15.72
3.6 Java naot #4 4.27 82,633 667 15.75
3.6 Ada 2012 GNAT #3 4.01 41,099 1825 15.79
3.7 Node.js #3 4.05 144,757 1128 15.86
3.7 Java naot #2 4.01 58,278 802 15.87
3.7 C# naot #5 4.02 40,743 851 15.88
3.7 Intel Fortran #7 4.09 85,639 965 16.19
3.8 Lisp SBCL 4.53 60,678 2478 16.61
3.8 Lisp SBCL #4 4.20 60,654 2453 16.67
3.9 Dart aot #4 4.29 45,175 988 16.80
3.9 C++ g++ #2 16.96 36,704 700 16.95
4.6 Go 5.04 35,787 829 20.04
5.8 C gcc #8 25.17 2,355 412 25.16
5.8 Intel Fortran #4 9.89 86,360 626 25.29
5.9 C# naot #8 25.58 6,115 492 25.56
5.9 Swift #8 25.62 12,784 426 25.60
6.0 Lisp SBCL #3 9.82 60,191 900 26.17
6.1 Free Pascal #7 6.61 39,596 956 26.26
6.1 Haskell GHC #2 6.64 51,057 789 26.39
6.1 Chapel 6.69 41,697 447 26.49
6.1 C# naot #3 6.69 39,715 722 26.52
6.1 Swift 26.55 12,780 400 26.53
6.1 Free Pascal #3 26.61 319 533 26.60
6.2 Julia 26.66 339,132 379 26.69
6.2 Go #8 26.70 3,199 500 26.76
6.2 Swift #5 7.27 49,312 665 27.09
6.3 Go #2 6.87 35,549 843 27.30
6.3 C++ g++ #3 27.38 5,181 421 27.38
6.3 Go #6 6.91 35,119 707 27.47
6.5 F# #2 7.17 49,979 1054 28.09
6.6 Ada 2012 GNAT #2 28.46 5,816 583 28.45
6.6 Java naot #8 28.57 16,392 441 28.56
6.6 OCaml #6 28.79 4,776 450 28.78
6.8 Node.js #2 29.41 73,617 422 29.42
6.8 Free Pascal 11.06 35,152 853 29.61
6.8 Free Pascal #2 11.07 35,160 853 29.61
6.9 Free Pascal #6 7.47 38,654 809 29.76
7.0 OCaml 7.60 64,643 723 30.20
7.0 Dart aot #2 30.25 11,768 494 30.24
7.1 Java naot 30.59 19,927 671 30.57
7.1 Java naot #3 7.80 63,054 910 30.99
7.2 Dart aot #6 11.74 84,529 914 31.43
7.5 Intel Fortran #5 32.66 47,174 528 32.65
8.6 Haskell GHC 36.39 271,733 628 37.10
11 C# naot #2 47.60 6,148 504 47.58
11 Racket 49.62 125,587 524 49.55
16 Node.js 69.02 69,100 380 69.10
16 Node.js #8 70.31 68,338 412 70.38
28 Dart aot 119.40 11,932 462 119.40
41 Dart aot #8 178.87 11,768 471 178.93
49 Erlang #4 53.86 98,140 813 214.33
52 Erlang #3 56.92 92,709 798 226.57
60 PHP 258.19 16,437 452 258.12
63 PHP #3 68.29 53,531 881 272.31
79 Pharo Smalltalk #2 5 min 175,542 574 5 min
79 Lua 5 min 36,647 365 5 min
80 Lua #3 5 min 36,696 364 5 min
84 Pharo Smalltalk 6 min 176,222 573 6 min
87 Lua #2 6 min 36,393 373 6 min
92 Lua #6 115.81 652,812 630 6 min
97 PHP #8 7 min 49,336 419 7 min
131 Ruby #5 143.13 118,436 978 9 min
133 Ruby #4 9 min 169,955 853 9 min
152 Ruby #2 167.51 126,730 887 11 min
167 Python 3 #7 182.94 62,173 698 12 min
202 Python 3 #3 14 min 45,085 319 14 min
216 Python 3 #2 237.64 230,973 790 15 min
217 Ruby #8 15 min 50,926 364 15 min
238 Python 3 #5 260.63 61,620 463 17 min
363 Python 3 #8 26 min 45,031 379 26 min
401 Ruby #3 29 min 50,524 313 28 min
455 Perl 8 min 114,569 592 32 min
Erlang Bad Output
Erlang #2 Bad Output
Ruby #6 Timed Out
Ruby #7 Timed Out
Swift #3 Bad Output
 
 
  * possible hand-written vector instructions or "unsafe"
 
× source secs mem gz cpu secs
0.8 * C++ g++ #4 0.89 37,941 3554 3.46
0.8 * C++ g++ 0.90 37,626 1797 3.48
0.9 * Rust #4 0.95 35,598 1301 3.78
0.9 * C++ g++ #6 0.98 37,908 1014 3.88
1.0 * Rust #6 1.08 36,426 1338 4.20
1.2 * C gcc #6 1.29 35,578 1147 5.11
1.2 * Swift #7 1.35 57,836 1147 5.29
1.3 * Haskell GHC #3 1.39 58,700 1985 5.44
1.3 * Swift #6 1.48 60,985 1147 5.80
2.7 * C# naot #7 2.96 39,088 915 11.73
3.1 * C++ g++ #7 4.87 38,048 749 13.29
3.2 * C gcc #4 3.50 35,197 805 13.89
3.2 * C gcc #7 3.51 35,447 1000 13.93
3.2 * C gcc 3.50 35,017 828 13.93
3.3 * C gcc #3 3.55 34,873 769 14.12
3.4 * C# naot #9 3.77 38,797 822 14.94
3.4 * C# naot 3.76 39,240 1980 14.95
3.7 * F# #6 4.18 77,173 943 16.25
4.0 * F# 4.42 77,042 890 17.21
8.0 * Racket #3 34.91 127,980 808 34.85
9.6 * Racket #4 10.68 190,411 810 41.52
12 * Racket #2 51.46 125,395 592 51.40