All nbody problem benchmarks

Current benchmark data was generated on Tue Mar 25 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
cpp 0-i.cpp 167ms 0.1ms 1.5MB 160ms 0ms g++ 11.4.0
rust 4-i.rs 168ms 2.2ms 1.9MB 160ms 0ms rustc 1.85.1
cpp 0-i.cpp 171ms 0.5ms 2.3MB 160ms 0ms clang++ 14.0.0-1ubuntu1.1
rust 7-i.rs 238ms 0.9ms 1.9MB 230ms 0ms rustc 1.85.1
rust 1.rs 240ms 0.8ms 1.8MB 230ms 0ms rustc 1.85.1
c 8-i.c 270ms 3.5ms 1.5MB 263ms 0ms zigcc 0.14.0
rust 3.rs 280ms 0.4ms 1.8MB 270ms 0ms rustc 1.87.0-nightly
zig 2.zig 280ms 0.4ms 1.0MB 270ms 0ms zig 0.14.0
rust 2.rs 288ms 8.0ms 1.6MB 277ms 0ms rustc 1.85.1
c 8-i.c 303ms 0.8ms 2.1MB 290ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 310ms 0.8ms 2.3MB 300ms 0ms gcc 14.2.0
v 1.v 312ms 1.6ms 1.6MB 303ms 0ms v/clang 0.4.10
v 1.v 313ms 2.4ms 2.3MB 303ms 0ms v/clang+gc 0.4.10
c 5.c 313ms 0.8ms 2.3MB 307ms 0ms gcc 14.2.0
zig 1.zig 315ms 1.2ms 1.1MB 303ms 0ms zig 0.14.0
cpp 1.cpp 315ms 0.8ms 2.3MB 307ms 0ms clang++ 14.0.0-1ubuntu1.1
cpp 1.cpp 316ms 0.4ms 1.8MB 307ms 0ms g++ 11.4.0
c 5.c 317ms 0.3ms 2.1MB 310ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 317ms 5.6ms 1.5MB 303ms 0ms zigcc 0.14.0
c 5.c 318ms 3.5ms 1.5MB 310ms 0ms zigcc 0.14.0
c 2.c 318ms 2.2ms 2.1MB 310ms 0ms clang 14.0.0-1ubuntu1.1
nim 2.nim 320ms 3.2ms 1.8MB 310ms 0ms nim 2.2.2
chapel 2.chpl 326ms 5.3ms 28.9MB 317ms 0ms chpl 1.31.0
c 8-i.c 333ms 0.4ms 2.3MB 320ms 0ms gcc 14.2.0
crystal 2.cr 344ms 4.8ms 3.3MB 333ms 0ms crystal 1.15.1
crystal 1.cr 345ms 2.6ms 3.3MB 333ms 0ms crystal 1.15.1
swift 7.swift 345ms 1.2ms 9.8MB 340ms 0ms swift 6.0.3
nim 2.nim 347ms 6.4ms 2.0MB 337ms 0ms nim/clang 2.2.2
go 1.go 350ms 2.9ms 0.4MB 340ms 0ms tinygo 0.37.0
go 1.go 352ms 2.1ms 3.5MB 343ms 0ms go 1.24.1
odin 1.odin 356ms 2.8ms 1.5MB 347ms 0ms odin 2024
odin 1-i.odin 358ms 0.8ms 1.5MB 350ms 0ms odin 2024
d 1.d 362ms 1.8ms 2.9MB 350ms 0ms ldc2 1.40.1
d 2.d 362ms 0.4ms 2.9MB 350ms 0ms ldc2 1.40.1
csharp 9.cs 364ms 3.9ms 27.8MB 340ms 7ms dotnet 9.0.202
csharp 8.cs 372ms 2.5ms 9.9MB 357ms 0ms dotnet/aot 9.0.202
ocaml 1.ml 374ms 0.4ms 5.3MB 367ms 0ms ocaml 5.3.0
kotlin 1n.kt 404ms 1.3ms 2.5MB 393ms 0ms kotlin/native 1.8.21
dart 3.dart 409ms 3.6ms 6.3MB 397ms 0ms dart/exe 3.7.2
wasm 1.rs 411ms 4.6ms 17.1MB 400ms 0ms wasmtime 31.0.0
csharp 8.cs 422ms 2.6ms 27.5MB 400ms 10ms dotnet 9.0.202
java 1.java 445ms 1.2ms 45.1MB 487ms 17ms openjdk 21
java 1.java 448ms 0.8ms 48.1MB 483ms 20ms openjdk 23
java 1.java 451ms 5.3ms 82.3MB 480ms 30ms graal/jvm 17.0.8
kotlin 1.kt 453ms 4.2ms 49.4MB 497ms 20ms kotlin/jvm 21
javascript 6.js 459ms 1.2ms 56.0MB 443ms 10ms node 23.10.0
typescript 6.ts 466ms 0.7ms 56.6MB 450ms 10ms deno 2.2.5
java 1.java 570ms 6.7ms 44.6MB 483ms 140ms openjdk/zgc 21
wasm 2.rs 583ms 2.7ms 17.0MB 570ms 0ms wasmtime 31.0.0
d 1.d 682ms 4.0ms 4.6MB 673ms 0ms dmd 2.110.0
lua 4.lua 717ms 7.0ms 2.3MB 703ms 0ms luajit 2.1.0-beta3
javascript 6.js 798ms 23ms 46.0MB 793ms 7ms bun 1.2.6
ruby 2.rb 846ms 5.3ms 311.6MB 1087ms 127ms truffleruby 24.2.0
haxe 2.hx 854ms 0.2ms 3.0MB 843ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 1074ms 5.4ms 3.0MB 1063ms 0ms haxe/hl/c 4.3.6
java 2.java 1247ms 8.3ms 612.0MB 1383ms 87ms openjdk 21
csharp 8.cs 1256ms 5.3ms 22.3MB 1240ms 3ms mono 6.12.0
java 2.java 1263ms 12ms 761.8MB 1380ms 107ms openjdk 23
codon 1.py 1322ms 1.2ms 8.8MB 1630ms 0ms codon 0.18.2
python 2.py 1357ms 7.5ms 57.9MB 1330ms 10ms pypy 3.10.16
haxe 3.hx 1406ms 6.4ms 25.6MB 1630ms 37ms haxe/cpp 4.3.6
d 2.d 2040ms 13ms 4.6MB 2033ms 0ms dmd 2.110.0
haxe 2.hx 2407ms 2.7ms 3.6MB 2397ms 0ms haxe/hl/jit 1.15.0
haxe 1.hx 2472ms 1.5ms 3.6MB 2460ms 0ms haxe/hl/jit 1.15.0
python 1.py 2662ms 11ms 57.2MB 2640ms 10ms pypy 3.10.16
java 2.java 3428ms 91ms 2585.6MB 1647ms 1983ms 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.3MB 3970ms 1537ms haxe/hl/c 4.3.6
haxe 3.hx timeout 0.0ms 3.8MB 4167ms 1297ms 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 4987ms 0ms perl 5.40.1
python 1.py timeout 0.0ms 8.8MB 4990ms 0ms cpython 3.13.2
python 2.py timeout 0.0ms 8.8MB 4990ms 0ms cpython 3.13.2
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 4983ms 7ms ruby 3.4.2
ruby 2.rb timeout 0.0ms 13.5MB 4987ms 0ms ruby/yjit 3.4.2

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
cpp 0-i.cpp 19ms 0.1ms 1.5MB 10ms 0ms g++ 11.4.0
rust 4-i.rs 19ms 0.3ms 1.8MB 10ms 0ms rustc 1.85.1
cpp 0-i.cpp 19ms 0.2ms 2.3MB 10ms 0ms clang++ 14.0.0-1ubuntu1.1
rust 7-i.rs 26ms 0.2ms 1.8MB 20ms 0ms rustc 1.85.1
rust 1.rs 26ms 0.3ms 1.9MB 20ms 0ms rustc 1.85.1
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.87.0-nightly
rust 2.rs 30ms 0.7ms 1.8MB 20ms 0ms rustc 1.85.1
c 8-i.c 31ms 4.1ms 1.5MB 23ms 0ms zigcc 0.14.0
c 8-i.c 34ms 0.5ms 2.3MB 27ms 0ms clang 14.0.0-1ubuntu1.1
zig 1.zig 34ms 0.4ms 1.1MB 27ms 0ms zig 0.14.0
c 2.c 34ms 0.5ms 2.3MB 30ms 0ms gcc 14.2.0
v 1.v 34ms 0.4ms 1.6MB 27ms 0ms v/clang 0.4.10
c 2.c 34ms 0.3ms 1.5MB 30ms 0ms zigcc 0.14.0
c 5.c 34ms 0.1ms 2.3MB 30ms 0ms clang 14.0.0-1ubuntu1.1
c 5.c 34ms 0.3ms 2.3MB 30ms 0ms gcc 14.2.0
v 1.v 34ms 0.5ms 2.3MB 30ms 0ms v/clang+gc 0.4.10
cpp 1.cpp 34ms 0.7ms 1.9MB 30ms 0ms g++ 11.4.0
cpp 1.cpp 34ms 0.7ms 2.3MB 30ms 0ms clang++ 14.0.0-1ubuntu1.1
c 5.c 35ms 0.6ms 1.5MB 30ms 0ms zigcc 0.14.0
nim 2.nim 35ms 1.0ms 1.8MB 30ms 0ms nim 2.2.2
c 8-i.c 36ms 0.2ms 2.3MB 30ms 0ms gcc 14.2.0
go 1.go 37ms 0.8ms 0.4MB 30ms 0ms tinygo 0.37.0
nim 2.nim 37ms 1.3ms 2.0MB 30ms 0ms nim/clang 2.2.2
odin 1.odin 38ms 0.5ms 1.5MB 30ms 0ms odin 2024
crystal 1.cr 38ms 1.5ms 3.1MB 30ms 0ms crystal 1.15.1
crystal 2.cr 38ms 0.5ms 3.1MB 30ms 0ms crystal 1.15.1
odin 1-i.odin 38ms 0.6ms 1.5MB 30ms 0ms odin 2024
d 2.d 39ms 0.1ms 2.9MB 30ms 0ms ldc2 1.40.1
d 1.d 39ms 0.4ms 2.9MB 30ms 0ms ldc2 1.40.1
go 1.go 39ms 1.2ms 3.5MB 30ms 0ms go 1.24.1
swift 7.swift 40ms 0.2ms 9.8MB 30ms 0ms swift 6.0.3
c 2.c 40ms 2.3ms 2.1MB 30ms 0ms clang 14.0.0-1ubuntu1.1
ocaml 1.ml 41ms 0.7ms 5.2MB 30ms 0ms ocaml 5.3.0
kotlin 1n.kt 44ms 0.5ms 2.5MB 37ms 0ms kotlin/native 1.8.21
chapel 2.chpl 45ms 2.3ms 28.8MB 40ms 0ms chpl 1.31.0
dart 3.dart 46ms 0.9ms 6.3MB 37ms 0ms dart/exe 3.7.2
csharp 8.cs 47ms 0.7ms 9.8MB 30ms 0ms dotnet/aot 9.0.202
wasm 1.rs 49ms 0.3ms 17.2MB 37ms 0ms wasmtime 31.0.0
wasm 2.rs 66ms 0.5ms 17.0MB 53ms 0ms wasmtime 31.0.0
d 1.d 71ms 0.3ms 4.6MB 60ms 0ms dmd 2.110.0
lua 4.lua 77ms 2.5ms 2.3MB 70ms 0ms luajit 2.1.0-beta3
javascript 6.js 79ms 0.5ms 56.1MB 67ms 7ms node 23.10.0
typescript 6.ts 80ms 3.2ms 54.6MB 63ms 10ms deno 2.2.5
haxe 2.hx 90ms 0.8ms 3.0MB 80ms 0ms haxe/hl/c 4.3.6
csharp 8.cs 96ms 1.3ms 27.5MB 80ms 10ms dotnet 9.0.202
csharp 9.cs 97ms 4.6ms 27.8MB 73ms 10ms dotnet 9.0.202
javascript 6.js 101ms 1.0ms 45.9MB 97ms 10ms bun 1.2.6
haxe 1.hx 113ms 3.1ms 3.0MB 103ms 0ms haxe/hl/c 4.3.6
java 1.java 120ms 1.3ms 45.2MB 160ms 20ms openjdk 21
java 1.java 122ms 3.4ms 48.0MB 157ms 17ms openjdk 23
kotlin 1.kt 123ms 1.5ms 49.5MB 170ms 13ms kotlin/jvm 21
java 1.java 126ms 6.4ms 81.5MB 157ms 30ms graal/jvm 17.0.8
haxe 3.hx 156ms 1.6ms 25.6MB 163ms 10ms haxe/cpp 4.3.6
csharp 8.cs 165ms 1.2ms 20.8MB 150ms 0ms mono 6.12.0
codon 1-m.py 176ms 3.4ms 9.0MB 487ms 0ms codon 0.18.2
python 2.py 179ms 2.5ms 57.9MB 157ms 10ms pypy 3.10.16
d 2.d 210ms 3.6ms 4.5MB 203ms 0ms dmd 2.110.0
haxe 2.hx 248ms 0.6ms 3.6MB 240ms 0ms haxe/hl/jit 1.15.0
haxe 1.hx 253ms 1.7ms 3.6MB 240ms 0ms haxe/hl/jit 1.15.0
java 1.java 255ms 8.1ms 44.8MB 173ms 147ms openjdk/zgc 21
java 2-m.java 305ms 1.9ms 374.3MB 440ms 63ms openjdk 21
python 1.py 310ms 12ms 57.0MB 287ms 10ms pypy 3.10.16
ruby 2-m.rb 313ms 8.1ms 310.0MB 540ms 123ms truffleruby 24.2.0
java 2-m.java 314ms 3.5ms 404.5MB 453ms 67ms openjdk 23
haxe 2.hx 675ms 4.9ms 4.4MB 667ms 0ms haxe/cpp 4.3.6
haxe 3.hx 678ms 1.9ms 3.1MB 530ms 210ms haxe/hl/c 4.3.6
java 2.java 718ms 16ms 545.0MB 480ms 433ms openjdk/zgc 21
haxe 3.hx 790ms 3.6ms 4.0MB 663ms 187ms haxe/hl/jit 1.15.0
haxe 1.hx 811ms 2.4ms 4.4MB 800ms 0ms haxe/cpp 4.3.6
python 1.py 934ms 14ms 8.3MB 920ms 0ms pyston 3.8.12
ruby 2.rb 1065ms 2.9ms 13.5MB 1043ms 0ms ruby/yjit 3.4.2
lua 4.lua 1108ms 50ms 2.3MB 1100ms 0ms lua 5.4.7
python 2.py 1326ms 45ms 8.1MB 1313ms 0ms pyston 3.8.12
perl 2.pl 2765ms 27ms 6.1MB 2753ms 0ms perl 5.40.1
ruby 2.rb 2836ms 76ms 12.9MB 2817ms 3ms ruby 3.4.2
python 1.py 3035ms 123ms 8.6MB 3020ms 0ms cpython 3.13.2
python 2.py 3207ms 87ms 8.8MB 3197ms 0ms cpython 3.13.2