The Computer Language
25.01 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.73 64,295 441  
  Node.js #8 70.27 67,498 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 #2 1.10 36,016 770 4.34
1.0 Rust #7 1.11 35,934 763 4.38
1.0 Rust #5 1.12 36,549 725 4.37
1.1 Rust #3 1.15 14,008 1013 4.57
1.1 Chapel #3 1.18 42,295 582 4.51
1.4 Julia #7 1.53 357,155 629 4.85
1.4 Julia #2 1.56 356,286 634 4.95
1.5 Julia #3 1.61 376,521 589 5.16
1.5 C gcc #5 1.64 35,582 788 6.32
1.6 Julia #5 1.76 381,854 580 5.83
1.9 Rust 2.03 42,541 874 7.90
1.9 Julia #4 2.07 368,177 583 5.18
2.0 Julia #6 2.25 368,796 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.4 Go #3 3.78 38,101 900 15.02
3.6 Free Pascal #5 3.91 35,529 980 15.52
3.7 Ada 2012 GNAT #3 4.01 41,099 1825 15.79
3.7 C# naot #5 4.01 40,976 851 15.88
3.7 Node.js #3 4.05 143,802 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 Java  #2 4.13 100,966 802 16.09
3.8 Dart aot #4 4.17 45,646 988 16.30
3.8 Lisp SBCL #4 4.20 60,654 2453 16.67
3.8 Java #6 4.20 100,753 808 16.38
4.0 Java #4 4.40 124,809 667 15.98
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.0 Haskell GHC #2 6.63 51,020 789 26.38
6.1 Chapel 6.68 41,964 447 26.47
6.1 C# naot #3 6.70 39,530 722 26.53
6.3 Go #2 6.87 35,549 843 27.30
6.3 Go #6 6.91 35,119 707 27.47
6.5 Java #3 7.10 101,376 910 27.92
6.5 F#  #2 7.18 49,836 1054 28.10
6.6 Swift #5 7.28 49,291 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
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.88 84,640 914 31.84
12 C++ g++ #5 13.47 36,884 596 13.47
14 Dart aot #3 15.66 18,076 620 15.65
15 C++ g++ #2 16.96 36,704 700 16.95
22 Java 24.56 60,998 671 24.59
23 C gcc #8 25.17 2,355 412 25.16
23 C# naot #8 25.58 6,009 492 25.56
23 Swift #8 25.63 12,841 426 25.61
24 Swift 26.55 12,853 400 26.54
24 Free Pascal #3 26.61 319 533 26.60
24 Julia 26.66 339,251 379 26.69
24 Go #8 26.70 3,199 500 26.76
25 C++ g++ #3 27.38 5,181 421 27.38
25 Java #8 27.73 64,295 441 27.82
26 Ada 2012 GNAT #2 28.46 5,816 583 28.45
26 OCaml #6 28.79 4,776 450 28.78
27 Node.js #2 29.40 73,261 422 29.41
27 Dart aot #2 29.86 11,198 494 29.86
30 Intel Fortran #5 32.66 47,174 528 32.65
33 Haskell GHC 36.39 271,499 628 37.09
44 C# naot #2 47.80 6,349 504 47.78
45 Racket 49.55 125,518 524 49.48
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 68.65 67,793 380 68.73
64 Node.js #8 70.27 67,498 412 70.35
103 Dart aot 113.26 11,571 462 113.25
106 Lua #6 115.81 652,812 630 6 min
130 Ruby  #5 143.13 118,436 978 9 min
153 Ruby #2 167.51 126,730 887 11 min
165 Dart aot #8 180.63 11,485 471 180.68
167 Python 3 #7 182.94 62,173 698 12 min
217 Python 3 #2 237.64 230,973 790 15 min
235 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
315 Lua #3 5 min 36,696 364 5 min
334 Pharo Smalltalk 6 min 176,222 573 6 min
344 Lua #2 6 min 36,393 373 6 min
387 PHP #8 7 min 49,336 419 7 min
451 Perl 8 min 114,569 592 32 min
528 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 | "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,955 1301 3.78
0.9 * C++ g++ #6 0.98 37,908 1014 3.88
1.0 * Rust #6 1.08 36,385 1338 4.21
1.2 * C gcc #6 1.29 35,578 1147 5.11
1.2 * Swift #7 1.35 57,856 1147 5.29
1.3 * Haskell GHC #3 1.44 58,978 1985 5.61
1.3 * Swift #6 1.48 60,969 1147 5.78
2.7 * C# naot #7 2.96 39,080 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 #9 3.76 39,207 822 14.94
3.4 * C# naot 3.77 39,244 1980 14.95
3.8 * F# #6 4.18 77,046 943 16.22
4.0 * F# 4.42 76,898 890 17.20
4.4 * C++ g++ #7 4.87 38,048 749 13.29
9.7 * Racket #4 10.68 190,099 810 41.51
32 * Racket #3 34.90 127,996 808 34.83
47 * Racket #2 51.47 125,604 592 51.40