All nbody problem benchmarks

Current benchmark data was generated on Mon Apr 14 2025, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][4 cores] AMD EPYC 7763 64-Core Processor (Model 1)

* -m in a file name stands for multi-threading or multi-processing

* -i in a file name stands for direct intrinsics usage. (Usage of simd intrinsics via libraries is not counted)

* -ffi in a file name stands for non-stdlib FFI usage

* (You may find time < time(user) + time(sys) for some non-parallelized programs, the overhead is from GC or JIT compiler, which are allowed to take advantage of multi-cores as that's more close to real-world scenarios.)

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 4-i.rs 163ms 0.5ms 1.8MB 160ms 0ms rustc 1.86.0
cpp 0-i.cpp 167ms 0.2ms 1.5MB 160ms 0ms g++ 11.4.0
cpp 0-i.cpp 171ms 0.3ms 2.3MB 160ms 0ms clang++ 14.0.0-1ubuntu1.1
zig 3.zig 198ms 0.4ms 1.0MB 190ms 0ms zig 0.14.0
rust 7-i.rs 237ms 0.9ms 1.8MB 230ms 0ms rustc 1.86.0
rust 1.rs 240ms 0.4ms 1.8MB 230ms 0ms rustc 1.86.0
c 8-i.c 267ms 0.5ms 1.5MB 260ms 0ms zigcc 0.14.0
rust 3.rs 279ms 0.7ms 1.9MB 270ms 0ms rustc 1.88.0-nightly
zig 2.zig 280ms 0.3ms 1.0MB 270ms 0ms zig 0.14.0
rust 2.rs 284ms 0.8ms 1.8MB 273ms 0ms rustc 1.86.0
c 8-i.c 302ms 1.0ms 2.1MB 290ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 311ms 0.4ms 2.3MB 300ms 0ms gcc 14.2.0
v 1.v 311ms 1.3ms 1.6MB 300ms 0ms v/clang 0.4.10
v 1.v 313ms 1.2ms 2.3MB 300ms 0ms v/clang+gc 0.4.10
cpp 1.cpp 314ms 0.6ms 2.3MB 303ms 0ms clang++ 14.0.0-1ubuntu1.1
cpp 1.cpp 314ms 1.5ms 1.8MB 310ms 0ms g++ 11.4.0
c 5.c 315ms 0.7ms 2.3MB 303ms 0ms gcc 14.2.0
c 2.c 315ms 1.4ms 1.5MB 310ms 0ms zigcc 0.14.0
zig 1.zig 315ms 0.5ms 1.1MB 307ms 0ms zig 0.14.0
c 5.c 315ms 0.9ms 1.5MB 307ms 0ms zigcc 0.14.0
c 5.c 318ms 3.4ms 2.1MB 310ms 0ms clang 14.0.0-1ubuntu1.1
nim 2.nim 319ms 0.9ms 1.8MB 310ms 0ms nim 2.2.2
c 2.c 320ms 0.6ms 2.1MB 310ms 0ms clang 14.0.0-1ubuntu1.1
chapel 2.chpl 323ms 1.8ms 28.8MB 317ms 0ms chpl 1.31.0
c 8-i.c 334ms 0.4ms 2.3MB 323ms 0ms gcc 14.2.0
nim 2.nim 342ms 1.8ms 2.0MB 330ms 0ms nim/clang 2.2.2
swift 7.swift 344ms 2.0ms 10.0MB 330ms 0ms swift 6.1.0
crystal 1.cr 344ms 0.9ms 3.1MB 333ms 0ms crystal 1.16.0
crystal 2.cr 344ms 2.7ms 3.1MB 333ms 0ms crystal 1.16.0
go 1.go 348ms 0.6ms 3.5MB 340ms 0ms go 1.24.2
go 1.go 351ms 5.8ms 0.4MB 343ms 0ms tinygo 0.37.0
kotlin 1n.kt 352ms 1.7ms 3.5MB 340ms 0ms kotlin/native 2.1.20
odin 1.odin 356ms 1.6ms 1.5MB 350ms 0ms odin 2024
odin 1-i.odin 359ms 1.2ms 1.5MB 350ms 0ms odin 2024
csharp 9.cs 360ms 2.9ms 27.6MB 340ms 7ms dotnet 9.0.203
d 2.d 361ms 0.8ms 2.9MB 350ms 0ms ldc2 1.40.1
d 1.d 362ms 1.7ms 2.9MB 350ms 0ms ldc2 1.40.1
csharp 8.cs 371ms 1.0ms 9.9MB 360ms 0ms dotnet/aot 9.0.203
ocaml 1.ml 374ms 1.4ms 5.3MB 363ms 0ms ocaml 5.3.0
wasm 1.rs 400ms 1.5ms 17.1MB 390ms 0ms wasmtime 31.0.0
dart 3.dart 406ms 0.2ms 6.5MB 397ms 0ms dart/exe 3.7.2
csharp 8.cs 419ms 1.8ms 27.4MB 400ms 3ms dotnet 9.0.203
kotlin 1.kt 448ms 1.3ms 49.3MB 493ms 17ms kotlin/jvm 21
java 1.java 449ms 6.5ms 81.4MB 477ms 30ms graal/jvm 17.0.8
java 1.java 451ms 0.4ms 48.3MB 487ms 17ms openjdk 23
java 1.java 457ms 15ms 45.3MB 490ms 17ms openjdk 21
javascript 6.js 462ms 6.7ms 56.1MB 447ms 10ms node 23.11.0
typescript 6.ts 470ms 5.7ms 54.0MB 457ms 7ms deno 2.2.9
java 1.java 571ms 1.4ms 44.9MB 493ms 137ms openjdk/zgc 21
wasm 2.rs 582ms 0.4ms 17.2MB 570ms 0ms wasmtime 31.0.0
javascript 6.js 601ms 3.1ms 45.5MB 593ms 7ms bun 1.2.9
d 1.d 689ms 3.9ms 4.6MB 680ms 0ms dmd 2.111.0
lua 4.lua 711ms 0.5ms 2.4MB 700ms 0ms luajit 2.1.0-beta3
ruby 2.rb 825ms 4.5ms 309.8MB 1053ms 117ms truffleruby 24.2.0
haxe 2.hx 859ms 10ms 3.1MB 847ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 1069ms 3.8ms 3.0MB 1060ms 0ms haxe/hl/c 4.3.6
csharp 8.cs 1254ms 9.8ms 22.8MB 1240ms 0ms mono 6.12.0
java 2.java 1260ms 11ms 640.1MB 1390ms 87ms openjdk 21
java 2.java 1275ms 9.1ms 826.3MB 1380ms 123ms openjdk 23
codon 1.py 1325ms 8.3ms 8.9MB 1637ms 0ms codon 0.18.2
python 2.py 1350ms 3.5ms 57.9MB 1327ms 10ms pypy 3.10.16
haxe 3.hx 1399ms 33ms 25.6MB 1583ms 37ms haxe/cpp 4.3.6
d 2.d 2028ms 2.4ms 4.8MB 2020ms 0ms dmd 2.111.0
haxe 2.hx 2410ms 0.9ms 3.8MB 2400ms 0ms haxe/hl/jit 1.15.0
haxe 1.hx 2465ms 6.6ms 3.6MB 2453ms 0ms haxe/hl/jit 1.15.0
python 1.py 2654ms 20ms 57.2MB 2627ms 13ms pypy 3.10.16
java 2.java 3279ms 125ms 2446.0MB 1647ms 1853ms openjdk/zgc 21
haxe 1.hx timeout 0.0ms 4.4MB 4990ms 0ms haxe/cpp 4.3.6
haxe 2.hx timeout 0.0ms 4.4MB 4990ms 0ms haxe/cpp 4.3.6
haxe 3.hx timeout 0.0ms 3.2MB 3880ms 1640ms haxe/hl/c 4.3.6
haxe 3.hx timeout 0.0ms 4.1MB 4237ms 1250ms haxe/hl/jit 1.15.0
lua 4.lua timeout 0.0ms 2.3MB 4990ms 0ms lua 5.4.7
perl 2.pl timeout 0.0ms 6.1MB 4990ms 0ms perl 5.40.1
python 1.py timeout 0.0ms 8.9MB 4990ms 0ms cpython 3.13.3
python 2.py timeout 0.0ms 8.9MB 4990ms 0ms cpython 3.13.3
python 1.py timeout 0.0ms 8.3MB 4990ms 0ms pyston 3.8.12
python 2.py timeout 0.0ms 8.1MB 4990ms 0ms pyston 3.8.12
ruby 2.rb timeout 0.0ms 12.9MB 4987ms 0ms ruby 3.4.2
ruby 2.rb timeout 0.0ms 13.5MB 4983ms 3ms ruby/yjit 3.4.2

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 4-i.rs 18ms 0.1ms 1.8MB 10ms 0ms rustc 1.86.0
cpp 0-i.cpp 19ms 0.1ms 1.5MB 10ms 0ms g++ 11.4.0
cpp 0-i.cpp 19ms 0.2ms 2.3MB 10ms 0ms clang++ 14.0.0-1ubuntu1.1
zig 3.zig 22ms 0.2ms 1.0MB 10ms 0ms zig 0.14.0
rust 7-i.rs 26ms 0.5ms 1.9MB 20ms 0ms rustc 1.86.0
rust 1.rs 26ms 0.2ms 1.8MB 20ms 0ms rustc 1.86.0
c 8-i.c 29ms 0.2ms 1.5MB 20ms 0ms zigcc 0.14.0
zig 2.zig 30ms 0.1ms 1.0MB 20ms 0ms zig 0.14.0
rust 3.rs 30ms 0.1ms 1.8MB 20ms 0ms rustc 1.88.0-nightly
rust 2.rs 31ms 0.2ms 1.8MB 20ms 0ms rustc 1.86.0
c 8-i.c 33ms 0.4ms 2.1MB 23ms 0ms clang 14.0.0-1ubuntu1.1
v 1.v 33ms 0.5ms 1.6MB 30ms 0ms v/clang 0.4.10
c 5.c 34ms 0.3ms 2.3MB 30ms 0ms gcc 14.2.0
zig 1.zig 34ms 0.4ms 1.1MB 30ms 0ms zig 0.14.0
c 5.c 34ms 0.5ms 1.5MB 27ms 0ms zigcc 0.14.0
c 2.c 34ms 0.6ms 2.3MB 27ms 0ms gcc 14.2.0
v 1.v 34ms 0.4ms 2.3MB 30ms 0ms v/clang+gc 0.4.10
cpp 1.cpp 34ms 0.6ms 2.3MB 27ms 0ms clang++ 14.0.0-1ubuntu1.1
c 2.c 34ms 0.2ms 1.5MB 30ms 0ms zigcc 0.14.0
nim 2.nim 34ms 0.6ms 1.8MB 30ms 0ms nim 2.2.2
cpp 1.cpp 34ms 0.6ms 1.8MB 30ms 0ms g++ 11.4.0
c 2.c 35ms 0.8ms 2.1MB 30ms 0ms clang 14.0.0-1ubuntu1.1
c 5.c 35ms 0.7ms 2.1MB 30ms 0ms clang 14.0.0-1ubuntu1.1
c 8-i.c 36ms 0.2ms 2.3MB 30ms 0ms gcc 14.2.0
go 1.go 37ms 0.7ms 0.4MB 30ms 0ms tinygo 0.37.0
crystal 2.cr 37ms 0.6ms 3.1MB 30ms 0ms crystal 1.16.0
nim 2.nim 38ms 0.5ms 2.0MB 30ms 0ms nim/clang 2.2.2
odin 1.odin 39ms 0.4ms 1.5MB 30ms 0ms odin 2024
crystal 1.cr 39ms 0.7ms 3.3MB 30ms 0ms crystal 1.16.0
d 1.d 39ms 0.4ms 2.9MB 30ms 0ms ldc2 1.40.1
go 1.go 39ms 0.7ms 3.5MB 30ms 0ms go 1.24.2
odin 1-i.odin 39ms 0.4ms 1.5MB 30ms 0ms odin 2024
swift 7.swift 39ms 0.2ms 10.0MB 30ms 0ms swift 6.1.0
kotlin 1n.kt 39ms 0.9ms 3.5MB 30ms 0ms kotlin/native 2.1.20
d 2.d 39ms 0.5ms 2.9MB 30ms 0ms ldc2 1.40.1
ocaml 1.ml 41ms 1.6ms 5.2MB 30ms 0ms ocaml 5.3.0
chapel 2.chpl 45ms 0.5ms 28.9MB 40ms 0ms chpl 1.31.0
dart 3.dart 46ms 1.1ms 6.3MB 40ms 0ms dart/exe 3.7.2
csharp 8.cs 46ms 1.4ms 9.9MB 30ms 0ms dotnet/aot 9.0.203
wasm 1.rs 48ms 0.4ms 17.0MB 40ms 0ms wasmtime 31.0.0
wasm 2.rs 65ms 0.1ms 17.1MB 53ms 0ms wasmtime 31.0.0
d 1.d 71ms 0.7ms 4.6MB 60ms 0ms dmd 2.111.0
lua 4.lua 75ms 2.0ms 2.3MB 70ms 0ms luajit 2.1.0-beta3
typescript 6.ts 77ms 1.0ms 54.5MB 63ms 10ms deno 2.2.9
javascript 6.js 81ms 0.6ms 45.6MB 73ms 10ms bun 1.2.9
javascript 6.js 81ms 0.3ms 56.1MB 70ms 10ms node 23.11.0
haxe 2.hx 90ms 1.9ms 3.0MB 80ms 0ms haxe/hl/c 4.3.6
csharp 9.cs 93ms 4.5ms 27.6MB 70ms 7ms dotnet 9.0.203
csharp 8.cs 99ms 8.1ms 27.6MB 80ms 3ms dotnet 9.0.203
haxe 1.hx 114ms 2.1ms 3.0MB 107ms 0ms haxe/hl/c 4.3.6
java 1.java 118ms 2.8ms 81.5MB 143ms 30ms graal/jvm 17.0.8
java 1.java 123ms 2.0ms 45.2MB 163ms 20ms openjdk 21
java 1.java 124ms 4.2ms 48.2MB 157ms 20ms openjdk 23
kotlin 1-m.kt 126ms 3.5ms 49.4MB 173ms 20ms kotlin/jvm 21
haxe 3.hx 157ms 3.4ms 25.8MB 153ms 10ms haxe/cpp 4.3.6
csharp 8.cs 162ms 0.8ms 20.9MB 150ms 0ms mono 6.12.0
python 2.py 177ms 2.0ms 57.9MB 157ms 10ms pypy 3.10.16
codon 1-m.py 186ms 16ms 8.8MB 493ms 0ms codon 0.18.2
d 2.d 207ms 2.0ms 4.8MB 200ms 0ms dmd 2.111.0
haxe 2.hx 248ms 2.3ms 3.6MB 237ms 0ms haxe/hl/jit 1.15.0
java 1.java 251ms 4.1ms 44.9MB 173ms 140ms openjdk/zgc 21
haxe 1.hx 253ms 1.2ms 3.8MB 240ms 0ms haxe/hl/jit 1.15.0
java 2-m.java 305ms 5.3ms 394.5MB 447ms 60ms openjdk 21
ruby 2-m.rb 308ms 6.2ms 310.0MB 540ms 117ms truffleruby 24.2.0
python 1.py 309ms 11ms 57.1MB 287ms 7ms pypy 3.10.16
java 2-m.java 328ms 5.1ms 392.1MB 470ms 70ms openjdk 23
haxe 3.hx 670ms 1.6ms 3.2MB 527ms 200ms haxe/hl/c 4.3.6
haxe 2.hx 674ms 5.7ms 4.4MB 663ms 0ms haxe/cpp 4.3.6
java 2.java 687ms 2.7ms 524.4MB 477ms 407ms openjdk/zgc 21
haxe 3.hx 790ms 5.6ms 3.8MB 653ms 200ms haxe/hl/jit 1.15.0
haxe 1.hx 812ms 9.3ms 4.4MB 803ms 0ms haxe/cpp 4.3.6
python 1.py 1009ms 134ms 8.3MB 997ms 0ms pyston 3.8.12
ruby 2.rb 1062ms 3.2ms 13.5MB 1047ms 3ms ruby/yjit 3.4.2
lua 4.lua 1133ms 38ms 2.3MB 1123ms 0ms lua 5.4.7
python 2.py 1304ms 5.0ms 8.3MB 1293ms 0ms pyston 3.8.12
ruby 2.rb 2806ms 75ms 12.9MB 2787ms 3ms ruby 3.4.2
perl 2.pl 2936ms 340ms 6.1MB 2927ms 0ms perl 5.40.1
python 1.py 2984ms 72ms 8.8MB 2970ms 0ms cpython 3.13.3
python 2.py 3398ms 9.8ms 8.9MB 3387ms 0ms cpython 3.13.3