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.1 Rust #3 1.15 14,615 1013 4.57
1.1 Chapel #3 1.18 42,156 582 4.51
1.4 Julia #7 1.54 357,138 629 4.85
1.4 Julia #2 1.57 355,762 634 4.95
1.5 Julia #3 1.61 376,463 589 5.17
1.5 C gcc #5 1.64 35,582 788 6.32
1.6 Julia #5 1.76 381,813 580 5.83
1.8 Rust 2.01 42,631 874 7.89
1.9 Julia #4 2.07 368,173 583 5.18
2.1 Julia #6 2.25 368,599 571 5.87
2.2 C++g++ #0 2.36 38,281 2752 9.31
2.5 Intel Fortran #6 2.72 85,975 669 8.55
3.2 C++ g++ #9 3.53 37,863 732 13.59
3.4 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.7 Ada 2012 GNAT #3 4.01 41,099 1825 15.79
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 Node.js #3 4.05 144,757 1128 15.86
3.7 C gcc #9 4.07 35,394 700 15.72
3.7 Intel Fortran #7 4.09 85,639 965 16.19
3.8 Lisp SBCL #4 4.20 60,654 2453 16.67
3.9 Java naot #4 4.27 82,633 667 15.75
3.9 Dart aot #4 4.29 45,175 988 16.80
4.1 Lisp SBCL 4.53 60,678 2478 16.61
4.6 Go 5.04 35,787 829 20.04
6.0 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.3 Go #2 6.87 35,549 843 27.30
6.3 Go #6 6.91 35,119 707 27.47
6.5 F# #2 7.17 49,979 1054 28.09
6.6 Swift #5 7.27 49,312 665 27.09
6.8 Free Pascal #6 7.47 38,654 809 29.76
6.9 OCaml 7.60 64,643 723 30.20
7.1 Java naot #3 7.80 63,054 910 30.99
9.0 Lisp SBCL #3 9.82 60,191 900 26.17
9.0 Intel Fortran #4 9.89 86,360 626 25.29
10 Free Pascal 11.06 35,152 853 29.61
10 Free Pascal #2 11.07 35,160 853 29.61
11 Dart aot #6 11.74 84,529 914 31.43
12 C++ g++ #5 13.47 36,884 596 13.47
14 Dart aot #3 15.69 17,887 620 15.69
15 C++ g++ #2 16.96 36,704 700 16.95
23 C gcc #8 25.17 2,355 412 25.16
23 C# naot #8 25.58 6,115 492 25.56
23 Swift #8 25.62 12,784 426 25.60
24 Swift 26.55 12,780 400 26.53
24 Free Pascal #3 26.61 319 533 26.60
24 Julia 26.66 339,132 379 26.69
24 Go #8 26.70 3,199 500 26.76
25 C++ g++ #3 27.38 5,181 421 27.38
26 Ada 2012 GNAT #2 28.46 5,816 583 28.45
26 Java naot #8 28.57 16,392 441 28.56
26 OCaml #6 28.79 4,776 450 28.78
27 Node.js #2 29.41 73,617 422 29.42
28 Dart aot #2 30.25 11,768 494 30.24
28 Java naot 30.59 19,927 671 30.57
30 Intel Fortran #5 32.66 47,174 528 32.65
33 Haskell GHC 36.39 271,733 628 37.10
43 C# naot #2 47.60 6,148 504 47.58
45 Racket 49.62 125,587 524 49.55
49 Erlang #4 53.86 98,140 813 214.33
52 Erlang #3 56.92 92,709 798 226.57
62 PHP #3 68.29 53,531 881 272.31
63 Node.js 69.02 69,100 380 69.10
64 Node.js #8 70.31 68,338 412 70.38
106 Lua #6 115.81 652,812 630 6 min
109 Dart aot 119.40 11,932 462 119.40
131 Ruby #5 143.13 118,436 978 9 min
153 Ruby #2 167.51 126,730 887 11 min
163 Dart aot #8 178.87 11,768 471 178.93
167 Python 3 #7 182.94 62,173 698 12 min
217 Python 3 #2 237.64 230,973 790 15 min
236 PHP 258.19 16,437 452 258.12
238 Python 3 #5 260.63 61,620 463 17 min
314 Pharo Smalltalk #2 5 min 175,542 574 5 min
315 Lua 5 min 36,647 365 5 min
316 Lua #3 5 min 36,696 364 5 min
335 Pharo Smalltalk 6 min 176,222 573 6 min
345 Lua #2 6 min 36,393 373 6 min
387 PHP #8 7 min 49,336 419 7 min
452 Perl 8 min 114,569 592 32 min
529 Ruby #4 9 min 169,955 853 9 min
  Python 3 #3 14 min 45,085 319 14 min
  Ruby #8 15 min 50,926 364 15 min
  Python 3 #8 26 min 45,031 379 26 min
  Ruby #3 29 min 50,524 313 28 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.4 * Swift #6 1.48 60,985 1147 5.80
2.7 * C# naot #7 2.96 39,088 915 11.73
3.2 * C gcc 3.50 35,017 828 13.93
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 3.55 34,873 769 14.12
3.4 * C# naot 3.76 39,240 1980 14.95
3.4 * C# naot #9 3.77 38,797 822 14.94
3.8 * F# #6 4.18 77,173 943 16.25
4.0 * F# 4.42 77,042 890 17.21
4.4 * C++ g++ #7 4.87 38,048 749 13.29
9.8 * Racket #4 10.68 190,411 810 41.52
32 * Racket #3 34.91 127,980 808 34.85
47 * Racket #2 51.46 125,395 592 51.40