The Computer Language
24.04 Benchmarks Game

n-body

First a few simple programs.

Then optimisations, multicore parallelism, [pdf] vector parallelism.

Last hand-written vector instructions and "unsafe" programs.

  source secs mem gz    
  Chapel #3 3.89 19,648 967    
  C clang 5.65 19,684 1179    
  Java 7.85 41,512 1437    
 
 
 
× source secs mem gz cpu secs cpu load
1.0 Matz's Ruby #2 44 min 11,096 1137 44 min 0% 100% 0% 0%
1.0 Matz's Ruby #3 44 min 11,100 1163 44 min 0% 100% 0% 0%
1.7 PHP #3 66.45 19,396 1088 66.43 0% 0% 0% 100%
1.8 C gcc #2 5.18 19,520 1270 5.18 0% 0% 100% 0%
1.8 C gcc #7 6.81 19,520 1250 6.81 100% 0% 0% 1%
1.8 C gcc 5.18 19,520 1179 5.18 0% 100% 0% 0%
1.8 C gcc #3 5.24 19,520 1214 5.24 100% 0% 0% 1%
1.8 C gcc #6 4.96 19,520 1186 4.96 0% 0% 100% 0%
1.8 Dart #6 7.02 19,536 1318 7.02 0% 0% 99% 0%
1.8 Dart #3 11.45 19,536 1413 11.45 100% 0% 0% 0%
1.8 Dart #2 9.43 19,536 1273 9.43 99% 0% 0% 0%
1.8 Perl #2 7 min 19,640 1431 7 min 0% 0% 100% 0%
1.8 Chapel #2 5.65 19,648 977 5.65 99% 0% 0% 0%
1.8 Chapel #3 3.89 19,648 967 3.90 100% 0% 0% 0%
1.8 Python 3 #2 6 min 19,656 1247 6 min 100% 0% 0% 0%
1.8 Python 3 6 min 19,656 1201 6 min 0% 0% 100% 0%
1.8 Rust #3 5.60 19,656 1546 5.60 0% 0% 100% 0%
1.8 Rust 5.51 19,660 1483 5.51 0% 0% 0% 100%
1.8 Rust #4 5.21 19,660 1810 5.21 0% 0% 100% 0%
1.8 Rust #2 3.92 19,660 1809 3.92 0% 100% 0% 1%
1.8 Haskell GHC #2 11.05 19,668 1888 11.20 0% 100% 0% 0%
1.8 Lua #4 227.77 19,672 1312 227.76 0% 0% 100% 0%
1.8 Lua #2 239.26 19,672 1200 239.25 0% 100% 0% 0%
1.8 Lua 267.17 19,672 1207 267.16 0% 100% 0% 0%
1.8 C++ g++ #8 6.57 19,676 1524 6.57 0% 0% 0% 100%
1.8 C++ g++ #6 6.89 19,676 1674 6.89 1% 0% 100% 0%
1.8 C++ g++ 6.49 19,676 1666 6.49 99% 0% 0% 0%
1.8 C++ g++ #9 5.43 19,676 1536 5.43 100% 0% 0% 0%
1.8 C++ g++ #5 6.01 19,676 1544 6.00 0% 0% 100% 0%
1.8 Go 7.00 19,680 1316 7.02 0% 100% 0% 0%
1.8 Free Pascal #2 6.28 19,680 1328 6.28 0% 0% 0% 100%
1.8 Free Pascal 6.28 19,680 1315 6.28 0% 100% 1% 0%
1.8 Free Pascal #3 7.16 19,680 1424 7.16 100% 1% 0% 0%
1.8 Go #2 7.02 19,680 1222 7.03 100% 0% 0% 0%
1.8 Swift #6 5.97 19,680 1200 5.97 100% 0% 0% 1%
1.8 Swift #3 202.89 19,680 1210 202.89 100% 0% 0% 0%
1.8 Swift #2 9.55 19,684 1198 9.55 100% 0% 0% 0%
1.8 Swift #9 287.28 19,684 1532 287.27 100% 0% 0% 0%
1.8 OCaml 6.83 19,688 1255 6.83 0% 99% 0% 0%
1.8 Ada 2012 GNAT #3 5.82 19,712 1758 5.82 100% 1% 0% 0%
1.8 Ada 2012 GNAT 5.83 19,712 1624 5.83 0% 0% 1% 100%
1.8 Classic Fortran #5 5.98 19,728 1669 5.98 0% 0% 0% 100%
1.8 Classic Fortran #4 6.18 19,728 1183 6.18 0% 0% 1% 100%
1.8 Classic Fortran 5.43 19,728 1400 5.43 0% 0% 0% 100%
1.8 Rust #8 4.51 19,788 1774 4.50 100% 0% 0% 1%
1.8 Rust #6 3.95 19,788 1796 3.95 100% 1% 0% 0%
1.8 C++ g++ #3 5.30 19,804 1402 5.30 0% 0% 100% 0%
1.8 Go #3 6.37 19,808 1207 6.38 100% 0% 0% 0%
1.8 Lisp SBCL #2 7.81 19,816 1408 7.81 100% 0% 0% 0%
1.8 Lisp SBCL 9.26 19,816 1373 9.26 0% 100% 0% 0%
1.8 Classic Fortran #3 6.32 19,856 1311 6.32 0% 0% 0% 100%
1.8 Classic Fortran #2 5.37 19,856 1507 5.37 0% 0% 100% 0%
1.8 Classic Fortran #6 4.21 19,856 1530 4.21 0% 100% 0% 0%
1.9 Ruby #3 188.71 21,248 1169 188.71 100% 0% 0% 0%
1.9 Ruby #2 215.31 21,248 1143 215.31 0% 0% 100% 0%
2.8 C# .NET #2 6.82 31,168 1350 6.81 99% 0% 0% 0%
2.8 C# .NET #8 6.82 31,208 1339 6.81 99% 0% 0% 0%
2.8 C# .NET #3 6.64 31,212 1311 6.62 0% 0% 0% 99%
2.8 C# .NET 7.79 31,240 1424 7.77 0% 99% 0% 0%
2.9 F# .NET #3 6.92 32,088 1624 6.89 0% 0% 99% 0%
3.1 F# .NET #2 7.39 34,188 1387 7.37 0% 0% 0% 99%
3.1 F# .NET #4 6.88 34,256 1296 6.87 99% 0% 0% 0%
3.7 Java  #4 6.87 41,188 1495 6.91 0% 0% 99% 0%
3.7 Java #3 7.47 41,256 1436 7.51 86% 0% 14% 0%
3.7 Java #2 7.42 41,308 1430 7.46 13% 1% 0% 86%
3.7 Java #5 6.78 41,384 1435 6.82 0% 0% 99% 1%
3.7 Java 7.85 41,512 1437 7.89 0% 99% 0% 0%
3.8 Erlang #3 104.36 42,236 1405 104.40 0% 27% 72% 0%
4.2 Node js #6 8.35 46,728 1274 8.36 0% 99% 0% 0%
4.5 F# .NET 7.76 49,484 1272 7.82 1% 99% 0% 1%
5.0 VW Smalltalk 111.27 55,552 1787 111.25 0% 82% 0% 18%
7.0 Racket 40.72 78,124 1503 40.71 0% 100% 0% 0%
23 Julia #4 5.74 252,032 1168 5.83 1% 1% 0% 99%
23 Julia #3 6.53 254,592 1548 6.62 0% 0% 1% 99%
25 Julia #8 4.16 272,512 1129 4.25 96% 0% 6% 0%
27 Julia #2 23.73 301,100 1084 23.86 0% 0% 99% 0%
 
 
  hand-written vector instructions | "unsafe"
 
× source secs mem gz cpu secs cpu load
1.8 C gcc #4 4.30 19,520 1496 4.30 0% 0% 100% 0%
1.8 C gcc #9 2.10 19,520 1639 2.10 0% 0% 0% 100%
1.8 C gcc #8 3.70 19,520 1398 3.69 100% 0% 0% 1%
1.8 C gcc #5 5.41 19,648 1436 5.41 99% 0% 0% 0%
1.8 Rust #9 2.20 19,660 1881 2.20 99% 1% 0% 0%
1.8 Rust #7 3.13 19,660 1759 3.13 0% 0% 0% 100%
1.8 C++ g++ #2 4.20 19,676 1884 4.19 0% 0% 100% 0%
1.8 C++ g++ #0 2.14 19,676 1933 2.14 1% 0% 100% 0%
1.8 Swift #4 5.49 19,680 1361 5.49 0% 0% 100% 1%
1.8 Swift #7 5.52 19,684 1333 5.52 100% 0% 0% 1%
1.8 Ada 2012 GNAT #5 8.99 19,712 2452 8.98 0% 100% 0% 0%
1.8 Rust #5 5.06 19,788 2224 5.06 0% 99% 1% 0%
1.8 Haskell GHC 14.80 19,796 1713 15.00 0% 0% 99% 0%
1.8 C++ g++ #4 5.44 19,804 1434 5.44 0% 0% 100% 0%
1.8 C++ g++ #7 3.97 19,804 1815 3.97 100% 0% 0% 0%
1.8 Swift #8 5.99 19,808 1688 5.99 100% 0% 1% 0%
1.8 Swift #5 5.51 19,812 1372 5.51 1% 99% 0% 0%
1.8 Ada 2012 GNAT #2 5.74 19,840 2623 5.74 0% 0% 100% 0%
2.7 C# .NET #9 3.16 30,044 2480 3.15 0% 0% 99% 0%
2.7 C# .NET #4 3.79 30,088 2137 3.77 1% 0% 99% 0%
2.7 C# .NET #6 4.82 30,196 1754 4.80 0% 99% 0% 0%
2.7 C# .NET #7 4.79 30,216 1715 4.77 99% 0% 0% 0%
3.1 F# .NET #5 5.01 34,008 1363 5.00 0% 0% 99% 0%
3.1 F# .NET #6 4.97 34,020 1395 4.95 99% 0% 0% 1%
7.1 Racket #2 14.23 78,496 1695 14.23 100% 0% 0% 0%