The Computer Language
25.02 Benchmarks Game

n-body

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 5.54 2,486 1195  
  Java #8 7.61 60,953 1322  
  Node.js #8 9.65 65,671 1173  
  PHP #8 242.35 16,507 1245  
  Ruby #8 5 min 18,350 1160  
  Python 3 #8 8 min 12,497 1172  
 
 
  Here are the crowd sourced programs —  
 
 
× source secs mem gz cpu secs
1.0 Intel Fortran #5 3.39 2,146 1669 3.38
1.0 Rust #3 3.46 2,937 1774 3.46
1.1 Chapel #3 3.61 9,720 983 3.59
1.1 Rust #2 3.65 3,031 1809 3.65
1.1 Julia #5 3.80 345,936 1129 3.83
1.3 Intel Fortran #2 4.46 2,146 1507 4.46
1.3 Intel Fortran 4.55 2,142 1400 4.55
1.4 Chapel #4 4.68 9,568 1027 4.65
1.4 Intel Fortran #3 4.72 2,154 1311 4.72
1.5 C gcc #6 4.98 2,482 1186 4.98
1.5 Intel Fortran #6 4.99 2,052 1530 4.99
1.5 Rust #4 5.13 3,039 1810 5.13
1.5 C++g++ #9 5.15 2,486 1536 5.15
1.5 C gcc #2 5.20 2,490 1270 5.20
1.5 C gcc 5.23 2,486 1179 5.23
1.5 C gcc #3 5.24 2,482 1214 5.24
1.6 C++ g++ #3 5.33 2,482 1402 5.33
1.6 Rust 5.52 3,027 1483 5.51
1.6 C gcc #8 5.54 2,486 1195 5.53
1.7 Chapel #2 5.74 9,929 977 5.71
1.7 Swift #6 5.81 12,947 1213 5.80
1.7 Ada 2012 GNAT #3 5.88 5,972 1758 5.88
1.8 Java naot #4 6.02 20,296 1495 6.02
1.9 Free Pascal #2 6.31 586 1345 6.30
1.9 Free Pascal 6.32 582 1331 6.31
1.9 C++ g++ #5 6.33 2,478 1544 6.33
1.9 Go #3 6.39 3,191 1207 6.40
1.9 Haskell GHC #2 6.42 9,982 1888 6.51
2.0 C++ g++ 6.62 2,499 1666 6.62
2.0 Swift #8 6.66 12,808 1285 6.65
2.0 C# naot #3 6.67 6,095 1311 6.66
2.0 Java naot #2 6.77 19,952 1430 6.76
2.0 Java naot #3 6.77 19,923 1436 6.76
2.0 C# naot #2 6.81 5,898 1339 6.80
2.0 C gcc #7 6.89 2,490 1250 6.89
2.0 C++ g++ #6 6.94 2,499 1674 6.93
2.1 F# #4 6.95 43,553 1296 6.92
2.1 OCaml 6.95 4,043 1255 6.95
2.1 Dart aot #6 6.98 8,950 1318 6.98
2.1 F# #3 6.99 41,685 1624 6.96
2.1 Go 7.02 3,228 1316 7.03
2.1 C# naot #8 7.02 5,833 1335 7.01
2.1 Go #2 7.04 3,203 1222 7.05
2.1 Julia #4 7.17 415,039 1168 7.21
2.1 Free Pascal #3 7.20 590 1441 7.18
2.1 Java naot #5 7.23 19,972 1435 7.22
2.1 Java naot 7.26 24,383 1437 7.26
2.2 Java naot #8 7.30 19,862 1322 7.29
2.2 F# #2 7.36 43,639 1387 7.34
2.2 C# naot 7.46 6,124 1424 7.45
2.2 C# naot #0 7.46 6,107 1342 7.45
2.2 Dart aot #8 7.50 8,684 1268 7.50
2.3 Ada 2012 GNAT 7.65 5,984 1624 7.64
2.3 Lisp SBCL #2 7.83 27,808 1408 7.81
2.3 Swift 7.89 12,808 1210 7.88
2.4 Julia #3 8.05 415,158 1548 8.09
2.5 Node.js #6 8.60 66,097 1274 8.59
2.6 F# 8.77 46,506 1272 8.04
2.6 Dart aot #2 8.92 8,688 1273 8.91
2.7 Lisp SBCL 9.28 27,554 1373 9.27
2.8 Go #8 9.60 3,191 1224 9.63
2.8 Node.js #8 9.65 65,671 1173 9.64
3.3 Dart aot #3 11.08 8,692 1413 11.08
8.5 Julia #2 28.79 415,015 1084 28.92
12 Racket 40.86 129,057 1503 40.80
31 Erlang #3 103.81 64,164 1405 103.77
34 Pharo Smalltalk 114.75 143,004 1801 115.45
49 Ruby #3 166.67 18,346 1169 166.60
51 Ruby #2 172.30 18,043 1143 172.23
60 PHP #3 204.10 16,425 1088 204.03
65 Lua #2 220.15 3,289 1200 219.71
67 Lua #4 225.31 3,285 1312 225.26
72 PHP #8 242.35 16,507 1245 242.27
74 Lua 251.60 3,281 1207 251.54
85 Swift #9 287.49 24,867 1532 287.44
95 Ruby #8 5 min 18,350 1160 5 min
110 Python 3 6 min 12,198 1201 6 min
131 Python 3 #2 7 min 12,554 1247 7 min
134 Perl #2 7 min 8,741 1431 7 min
156 Python 3 #8 8 min 12,497 1172 8 min
227 Ruby #7 12 min 18,326 1139 12 min
Intel Fortran #4 Bad Output
 
 
  * possible hand-written vector instructions or "unsafe"
 
× source secs mem gz cpu secs
0.6 * C gcc #9 2.10 2,482 1639 2.10
0.6 * C++ g++ #0 2.15 2,417 1933 2.15
0.6 * Rust #9 2.19 3,023 1881 2.19
0.9 * C# naot #9 3.13 6,087 2480 3.12
1.0 * Rust #7 3.24 2,937 1759 3.23
1.1 * C# naot #4 3.70 6,078 2137 3.69
1.2 * C gcc #4 4.06 2,499 1398 4.06
1.2 * C++ g++ #7 4.09 5,124 1815 4.09
1.3 * Rust #6 4.37 3,031 1796 4.37
1.4 * C# naot #7 4.74 6,091 1715 4.73
1.4 * C# naot #6 4.77 6,115 1754 4.76
1.5 * F# #6 5.01 43,221 1395 4.99
1.5 * Rust #5 5.02 3,035 2224 5.02
1.6 * C gcc #5 5.44 2,494 1436 5.44
1.6 * Swift #3 5.46 25,002 1688 5.44
1.6 * C++ g++ #4 5.46 2,482 1434 5.45
1.6 * Swift #4 5.49 25,010 1361 5.47
1.6 * Swift #5 5.52 25,010 1372 5.51
1.6 * Swift #7 5.53 25,010 1333 5.51
1.7 * F# #5 5.85 43,524 1363 5.83
1.8 * C++ g++ #2 6.02 2,490 1524 6.01
2.1 * Haskell GHC 7.20 10,256 1713 7.31
2.7 * Ada 2012 GNAT #5 9.01 5,960 2452 9.01
3.0 * Ada 2012 GNAT #2 10.15 5,984 2623 10.15
4.2 * Racket #2 14.34 129,397 1695 14.28