All nbody problem benchmarks

Current benchmark data was generated on Mon Jun 23 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 164ms 0.9ms 1.9MB 160ms 0ms rustc 1.87.0
cpp 0-i.cpp 167ms 0.4ms 1.5MB 160ms 0ms g++ 11.4.0
cpp 0-i.cpp 172ms 0.2ms 2.3MB 160ms 0ms clang++ 14.0.0-1ubuntu1.1
zig 3.zig 198ms 0.3ms 1.0MB 190ms 0ms zig 0.14.1
rust 7-i.rs 219ms 0.9ms 1.8MB 210ms 0ms rustc 1.87.0
rust 1.rs 230ms 0.5ms 1.9MB 220ms 0ms rustc 1.87.0
c 8-i.c 266ms 0.5ms 1.5MB 260ms 0ms zigcc 0.14.1
rust 3.rs 279ms 0.3ms 1.9MB 270ms 0ms rustc 1.89.0-nightly
rust 2.rs 279ms 0.6ms 1.8MB 270ms 0ms rustc 1.87.0
zig 2.zig 281ms 1.9ms 1.0MB 270ms 0ms zig 0.14.1
c 8-i.c 301ms 1.1ms 2.1MB 290ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 310ms 1.6ms 2.3MB 300ms 0ms gcc 15.1.0
v 1.v 312ms 1.0ms 2.3MB 300ms 0ms v/clang+gc 0.4.11
v 1.v 312ms 2.1ms 1.6MB 300ms 0ms v/clang 0.4.11
c 2.c 312ms 0.6ms 1.5MB 300ms 0ms zigcc 0.14.1
c 5.c 313ms 1.3ms 2.3MB 303ms 0ms gcc 15.1.0
cpp 1.cpp 316ms 2.1ms 1.9MB 307ms 0ms g++ 11.4.0
c 5.c 317ms 4.2ms 2.1MB 307ms 0ms clang 14.0.0-1ubuntu1.1
zig 1.zig 317ms 0.8ms 1.1MB 310ms 0ms zig 0.14.1
c 5.c 318ms 0.9ms 1.5MB 310ms 0ms zigcc 0.14.1
cpp 1.cpp 320ms 4.3ms 2.3MB 313ms 0ms clang++ 14.0.0-1ubuntu1.1
c 2.c 320ms 0.6ms 2.1MB 310ms 0ms clang 14.0.0-1ubuntu1.1
nim 2.nim 321ms 2.4ms 1.8MB 310ms 0ms nim 2.2.4
chapel 2.chpl 325ms 1.9ms 26.6MB 320ms 0ms chpl 1.31.0
c 8-i.c 336ms 0.8ms 2.3MB 330ms 0ms gcc 15.1.0
crystal 2.cr 342ms 1.3ms 3.3MB 330ms 0ms crystal 1.16.3
nim 2.nim 344ms 1.2ms 1.9MB 330ms 0ms nim/clang 2.2.4
crystal 1.cr 344ms 2.9ms 3.3MB 333ms 0ms crystal 1.16.3
swift 7.swift 345ms 2.1ms 10.3MB 337ms 0ms swift 6.1.2
go 1.go 346ms 1.4ms 0.3MB 337ms 0ms tinygo 0.38.0
go 1.go 349ms 1.6ms 3.5MB 340ms 0ms go 1.24.4
kotlin 1n.kt 354ms 2.9ms 3.6MB 343ms 0ms kotlin/native 2.1.20
odin 1.odin 356ms 2.5ms 1.5MB 347ms 0ms odin 2024
odin 1-i.odin 358ms 0.4ms 1.5MB 350ms 0ms odin 2024
d 2.d 361ms 1.5ms 2.9MB 350ms 0ms ldc2 1.41.0
d 1.d 361ms 1.0ms 2.9MB 350ms 0ms ldc2 1.41.0
csharp 9.cs 363ms 6.1ms 27.9MB 340ms 10ms dotnet 9.0.301
csharp 8.cs 371ms 2.5ms 9.9MB 360ms 0ms dotnet/aot 9.0.301
ocaml 1.ml 373ms 1.9ms 5.2MB 360ms 0ms ocaml 5.3.0
wasm 1.rs 404ms 1.2ms 17.7MB 390ms 0ms wasmtime 34.0.0
dart 3.dart 407ms 1.9ms 6.3MB 400ms 0ms dart/exe 3.8.1
csharp 8.cs 431ms 6.0ms 27.8MB 413ms 10ms dotnet 9.0.301
java 1.java 441ms 5.0ms 45.2MB 473ms 17ms openjdk 21
kotlin 1.kt 444ms 1.3ms 49.7MB 487ms 20ms kotlin/jvm 21
java 1.java 449ms 1.1ms 47.9MB 480ms 20ms openjdk 23
java 1.java 450ms 4.6ms 81.4MB 480ms 23ms graal/jvm 17.0.8
javascript 6.js 456ms 0.7ms 59.0MB 450ms 0ms node 24.2.0
typescript 6.ts 465ms 1.5ms 57.8MB 450ms 10ms deno 2.3.6
wasm 2.rs 562ms 1.1ms 17.8MB 550ms 0ms wasmtime 34.0.0
java 1.java 573ms 3.6ms 44.8MB 497ms 140ms openjdk/zgc 21
javascript 6.js 599ms 2.6ms 44.9MB 603ms 7ms bun 1.2.17
d 1.d 683ms 2.8ms 4.6MB 673ms 0ms dmd 2.111.0
lua 4.lua 715ms 2.7ms 2.4MB 707ms 0ms luajit 2.1.0-beta3
ruby 2.rb 831ms 18ms 310.8MB 1067ms 110ms truffleruby 24.2.1
haxe 2.hx 856ms 3.7ms 3.0MB 847ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 1062ms 2.4ms 3.0MB 1053ms 0ms haxe/hl/c 4.3.6
csharp 8.cs 1252ms 0.3ms 22.4MB 1240ms 0ms mono 6.12.0
java 2.java 1253ms 11ms 668.0MB 1373ms 93ms openjdk 21
java 2.java 1255ms 4.2ms 766.6MB 1373ms 100ms openjdk 23
python 2.py 1361ms 5.0ms 57.9MB 1333ms 10ms pypy 3.10.16
haxe 3.hx 1395ms 8.8ms 25.6MB 1580ms 30ms haxe/cpp 4.3.6
codon 1.py 1453ms 224ms 8.8MB 1763ms 0ms codon 0.18.2
d 2.d 2027ms 4.0ms 4.6MB 2017ms 0ms dmd 2.111.0
haxe 2.hx 2408ms 11ms 3.6MB 2397ms 0ms haxe/hl/jit 1.15.0
haxe 1.hx 2475ms 15ms 3.6MB 2467ms 0ms haxe/hl/jit 1.15.0
python 1.py 2654ms 8.4ms 58.4MB 2627ms 10ms pypy 3.10.16
java 2.java 3285ms 47ms 2400.8MB 1683ms 1837ms 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.4MB 3933ms 1573ms haxe/hl/c 4.3.6
haxe 3.hx timeout 0.0ms 3.9MB 4137ms 1327ms 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.2
python 1.py timeout 0.0ms 9.0MB 4990ms 0ms cpython 3.13.5
python 2.py timeout 0.0ms 9.0MB 4990ms 0ms cpython 3.13.5
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.8MB 4983ms 0ms ruby 3.4.4
ruby 2.rb timeout 0.0ms 13.5MB 4980ms 7ms ruby/yjit 3.4.4

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 4-i.rs 19ms 0.1ms 1.8MB 10ms 0ms rustc 1.87.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.6ms 1.3MB 13ms 0ms zig 0.14.1
rust 7-i.rs 24ms 0.2ms 1.8MB 20ms 0ms rustc 1.87.0
rust 1.rs 25ms 0.2ms 1.8MB 20ms 0ms rustc 1.87.0
c 8-i.c 29ms 0.5ms 1.5MB 20ms 0ms zigcc 0.14.1
zig 2.zig 30ms 0.1ms 1.0MB 20ms 0ms zig 0.14.1
rust 3.rs 30ms 0.1ms 1.8MB 20ms 0ms rustc 1.89.0-nightly
rust 2.rs 30ms 0.4ms 1.8MB 20ms 0ms rustc 1.87.0
c 8-i.c 33ms 0.7ms 2.1MB 27ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 33ms 0.2ms 2.3MB 27ms 0ms gcc 15.1.0
v 1.v 33ms 0.1ms 2.3MB 20ms 0ms v/clang+gc 0.4.11
c 5.c 33ms 0.1ms 2.3MB 30ms 0ms gcc 15.1.0
zig 1.zig 33ms 0.1ms 1.1MB 27ms 0ms zig 0.14.1
v 1.v 34ms 1.0ms 1.6MB 27ms 0ms v/clang 0.4.11
cpp 1.cpp 34ms 0.5ms 2.3MB 30ms 0ms clang++ 14.0.0-1ubuntu1.1
cpp 1.cpp 34ms 0.5ms 1.8MB 30ms 0ms g++ 11.4.0
nim 2.nim 34ms 0.6ms 1.8MB 30ms 0ms nim 2.2.4
c 2.c 34ms 0.9ms 1.5MB 30ms 0ms zigcc 0.14.1
c 5.c 35ms 0.5ms 2.1MB 30ms 0ms clang 14.0.0-1ubuntu1.1
c 5.c 35ms 0.2ms 1.5MB 30ms 0ms zigcc 0.14.1
c 2.c 36ms 1.2ms 2.1MB 30ms 0ms clang 14.0.0-1ubuntu1.1
c 8-i.c 36ms 0.1ms 2.3MB 30ms 0ms gcc 15.1.0
go 1.go 36ms 0.4ms 0.3MB 30ms 0ms tinygo 0.38.0
go 1.go 37ms 0.1ms 3.5MB 30ms 0ms go 1.24.4
crystal 2.cr 38ms 0.4ms 3.3MB 30ms 0ms crystal 1.16.3
nim 2.nim 38ms 1.4ms 2.0MB 30ms 0ms nim/clang 2.2.4
odin 1-i.odin 38ms 0.7ms 1.5MB 30ms 0ms odin 2024
odin 1.odin 38ms 0.4ms 1.5MB 30ms 0ms odin 2024
crystal 1.cr 38ms 1.4ms 3.3MB 30ms 0ms crystal 1.16.3
d 1.d 38ms 0.4ms 2.9MB 30ms 0ms ldc2 1.41.0
d 2.d 39ms 0.4ms 2.9MB 30ms 0ms ldc2 1.41.0
swift 7.swift 39ms 1.0ms 10.1MB 30ms 0ms swift 6.1.2
kotlin 1n.kt 40ms 1.0ms 3.5MB 30ms 0ms kotlin/native 2.1.20
ocaml 1.ml 41ms 1.4ms 5.2MB 30ms 0ms ocaml 5.3.0
csharp 8.cs 44ms 0.0ms 9.9MB 30ms 0ms dotnet/aot 9.0.301
dart 3.dart 45ms 0.9ms 6.3MB 40ms 0ms dart/exe 3.8.1
chapel 2.chpl 46ms 1.1ms 28.8MB 40ms 0ms chpl 1.31.0
wasm 1.rs 49ms 0.5ms 17.9MB 37ms 0ms wasmtime 34.0.0
wasm 2.rs 66ms 1.6ms 18.0MB 50ms 0ms wasmtime 34.0.0
d 1.d 71ms 1.3ms 4.8MB 60ms 0ms dmd 2.111.0
lua 4.lua 75ms 1.4ms 2.3MB 70ms 0ms luajit 2.1.0-beta3
typescript 6.ts 78ms 1.0ms 57.7MB 60ms 13ms deno 2.3.6
javascript 6.js 79ms 1.4ms 58.9MB 63ms 10ms node 24.2.0
javascript 6.js 82ms 2.6ms 44.9MB 83ms 10ms bun 1.2.17
haxe 2.hx 88ms 0.0ms 3.0MB 80ms 0ms haxe/hl/c 4.3.6
csharp 8.cs 96ms 0.6ms 27.8MB 77ms 10ms dotnet 9.0.301
haxe 1.hx 111ms 2.1ms 3.0MB 103ms 0ms haxe/hl/c 4.3.6
csharp 9.cs 111ms 17ms 27.9MB 87ms 7ms dotnet 9.0.301
java 1.java 118ms 2.7ms 81.6MB 150ms 27ms graal/jvm 17.0.8
kotlin 1-m.kt 121ms 1.7ms 49.7MB 167ms 17ms kotlin/jvm 21
java 1.java 124ms 1.2ms 48.5MB 157ms 23ms openjdk 23
java 1.java 135ms 27ms 45.4MB 153ms 13ms openjdk 21
haxe 3.hx 156ms 2.4ms 25.6MB 157ms 10ms haxe/cpp 4.3.6
csharp 8.cs 166ms 2.0ms 20.8MB 150ms 0ms mono 6.12.0
codon 1-m.py 175ms 4.0ms 8.8MB 483ms 0ms codon 0.18.2
python 2.py 180ms 2.2ms 58.2MB 157ms 10ms pypy 3.10.16
d 2.d 213ms 7.6ms 4.8MB 203ms 0ms dmd 2.111.0
haxe 2.hx 245ms 0.4ms 3.6MB 237ms 0ms haxe/hl/jit 1.15.0
java 1.java 249ms 2.6ms 44.8MB 167ms 143ms openjdk/zgc 21
haxe 1.hx 259ms 3.6ms 3.6MB 247ms 0ms haxe/hl/jit 1.15.0
java 2-m.java 295ms 10ms 352.2MB 433ms 50ms openjdk 21
python 1.py 306ms 6.8ms 57.2MB 283ms 10ms pypy 3.10.16
ruby 2-m.rb 310ms 3.7ms 323.2MB 563ms 110ms truffleruby 24.2.1
java 2-m.java 313ms 6.2ms 395.9MB 450ms 63ms openjdk 23
haxe 2.hx 674ms 3.1ms 4.4MB 667ms 0ms haxe/cpp 4.3.6
haxe 3.hx 679ms 4.5ms 3.3MB 513ms 223ms haxe/hl/c 4.3.6
java 2.java 705ms 8.5ms 535.8MB 483ms 417ms openjdk/zgc 21
haxe 3.hx 800ms 16ms 3.8MB 657ms 203ms haxe/hl/jit 1.15.0
haxe 1.hx 811ms 7.7ms 4.6MB 803ms 0ms haxe/cpp 4.3.6
python 1.py 943ms 6.5ms 8.3MB 933ms 0ms pyston 3.8.12
ruby 2.rb 1029ms 3.6ms 13.5MB 1017ms 0ms ruby/yjit 3.4.4
lua 4.lua 1160ms 15ms 2.3MB 1153ms 0ms lua 5.4.7
python 2.py 1324ms 11ms 8.1MB 1313ms 0ms pyston 3.8.12
perl 2.pl 2829ms 163ms 6.1MB 2820ms 0ms perl 5.40.2
python 1.py 2929ms 30ms 9.0MB 2917ms 0ms cpython 3.13.5
ruby 2.rb 2937ms 80ms 12.8MB 2920ms 3ms ruby 3.4.4
python 2.py 2959ms 13ms 9.0MB 2947ms 0ms cpython 3.13.5