All nbody problem benchmarks

Current benchmark data was generated on Tue Jul 01 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.2ms 1.8MB 160ms 0ms rustc 1.88.0
cpp 0-i.cpp 167ms 0.3ms 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 1.0ms 1.0MB 190ms 0ms zig 0.14.1
rust 7-i.rs 219ms 1.1ms 1.8MB 210ms 0ms rustc 1.88.0
rust 1.rs 229ms 0.5ms 1.8MB 220ms 0ms rustc 1.88.0
c 8-i.c 269ms 3.0ms 1.5MB 260ms 0ms zigcc 0.14.1
rust 3.rs 279ms 0.7ms 1.9MB 270ms 0ms rustc 1.90.0-nightly
rust 2.rs 279ms 0.5ms 1.6MB 270ms 0ms rustc 1.88.0
zig 2.zig 279ms 0.3ms 1.0MB 270ms 0ms zig 0.14.1
c 8-i.c 300ms 0.9ms 2.1MB 290ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 309ms 1.8ms 2.3MB 300ms 0ms gcc 15.1.0
v 1.v 312ms 1.5ms 1.6MB 300ms 0ms v/clang 0.4.11
v 1.v 312ms 1.3ms 2.3MB 300ms 0ms v/clang+gc 0.4.11
c 2.c 313ms 2.3ms 1.5MB 300ms 0ms zigcc 0.14.1
c 5.c 313ms 0.7ms 2.3MB 300ms 0ms gcc 15.1.0
cpp 1.cpp 314ms 1.2ms 1.8MB 307ms 0ms g++ 11.4.0
cpp 1.cpp 315ms 0.6ms 2.3MB 310ms 0ms clang++ 14.0.0-1ubuntu1.1
c 5.c 315ms 0.5ms 1.5MB 307ms 0ms zigcc 0.14.1
zig 1.zig 315ms 1.5ms 1.1MB 307ms 0ms zig 0.14.1
c 5.c 317ms 2.1ms 2.1MB 310ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 318ms 2.8ms 2.1MB 310ms 0ms clang 14.0.0-1ubuntu1.1
nim 2.nim 319ms 1.6ms 1.8MB 310ms 0ms nim 2.2.4
chapel 2.chpl 320ms 1.9ms 28.8MB 317ms 0ms chpl 1.31.0
c 8-i.c 337ms 0.8ms 2.3MB 330ms 0ms gcc 15.1.0
nim 2.nim 341ms 1.3ms 2.0MB 330ms 0ms nim/clang 2.2.4
crystal 2.cr 342ms 2.4ms 3.3MB 333ms 0ms crystal 1.16.3
swift 7.swift 350ms 7.2ms 10.3MB 343ms 0ms swift 6.1.2
crystal 1.cr 350ms 6.8ms 3.4MB 343ms 0ms crystal 1.16.3
kotlin 1n.kt 351ms 1.9ms 3.5MB 340ms 0ms kotlin/native 2.1.20
go 1.go 352ms 3.6ms 3.5MB 343ms 0ms go 1.24.4
go 1.go 352ms 7.5ms 0.3MB 343ms 0ms tinygo 0.38.0
odin 1.odin 353ms 1.5ms 1.6MB 340ms 0ms odin 2024
odin 1-i.odin 356ms 0.9ms 1.5MB 350ms 0ms odin 2024
d 1.d 361ms 1.2ms 2.9MB 350ms 0ms ldc2 1.41.0
d 2.d 361ms 0.9ms 2.9MB 350ms 0ms ldc2 1.41.0
csharp 9.cs 365ms 5.3ms 27.6MB 343ms 10ms dotnet 9.0.301
csharp 8.cs 373ms 3.5ms 9.8MB 360ms 0ms dotnet/aot 9.0.301
ocaml 1.ml 375ms 3.2ms 5.3MB 363ms 0ms ocaml 5.3.0
wasm 1.rs 404ms 3.4ms 18.0MB 390ms 0ms wasmtime 34.0.1
dart 3.dart 407ms 3.2ms 6.3MB 397ms 0ms dart/exe 3.8.1
csharp 8.cs 425ms 6.0ms 27.6MB 410ms 7ms dotnet 9.0.301
kotlin 1.kt 443ms 2.0ms 49.2MB 487ms 17ms kotlin/jvm 21
java 1.java 443ms 3.6ms 45.4MB 480ms 13ms openjdk 21
java 1.java 446ms 6.4ms 47.9MB 480ms 20ms openjdk 23
java 1.java 455ms 2.3ms 81.4MB 487ms 30ms graal/jvm 17.0.8
javascript 6.js 456ms 3.7ms 58.6MB 447ms 3ms node 24.3.0
typescript 6.ts 476ms 11ms 57.8MB 460ms 10ms deno 2.3.7
wasm 2.rs 562ms 0.4ms 18.3MB 550ms 0ms wasmtime 34.0.1
java 1.java 580ms 0.9ms 44.8MB 493ms 150ms openjdk/zgc 21
javascript 6.js 602ms 8.9ms 45.0MB 607ms 3ms bun 1.2.17
d 1.d 677ms 14ms 4.8MB 667ms 0ms dmd 2.111.0
lua 4.lua 715ms 1.4ms 2.4MB 710ms 0ms luajit 2.1.0-beta3
ruby 2.rb 835ms 11ms 315.3MB 1080ms 117ms truffleruby 24.2.1
haxe 2.hx 870ms 25ms 3.0MB 860ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 1072ms 15ms 3.0MB 1063ms 0ms haxe/hl/c 4.3.6
java 2.java 1243ms 4.5ms 648.2MB 1370ms 90ms openjdk 21
csharp 8.cs 1248ms 2.0ms 20.3MB 1230ms 0ms mono 6.12.0
java 2.java 1261ms 7.3ms 751.2MB 1393ms 93ms openjdk 23
codon 1.py 1325ms 2.3ms 9.4MB 1630ms 0ms codon 0.19.0
python 2.py 1358ms 8.1ms 58.1MB 1333ms 10ms pypy 3.10.16
haxe 3.hx 1407ms 15ms 25.6MB 1640ms 33ms haxe/cpp 4.3.6
d 2.d 2033ms 5.4ms 4.8MB 2023ms 0ms dmd 2.111.0
haxe 2.hx 2409ms 10ms 3.8MB 2400ms 0ms haxe/hl/jit 1.16.0
haxe 1.hx 2472ms 13ms 3.6MB 2463ms 0ms haxe/hl/jit 1.16.0
python 1.py 2644ms 7.4ms 57.0MB 2620ms 10ms pypy 3.10.16
java 2.java 3304ms 20ms 2374.4MB 1653ms 1870ms 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 3940ms 1563ms haxe/hl/c 4.3.6
haxe 3.hx timeout 0.0ms 3.8MB 4113ms 1343ms haxe/hl/jit 1.16.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 8.9MB 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 3ms 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 18ms 0.1ms 1.8MB 10ms 0ms rustc 1.88.0
cpp 0-i.cpp 18ms 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.1ms 1.0MB 10ms 0ms zig 0.14.1
rust 7-i.rs 24ms 0.5ms 1.8MB 20ms 0ms rustc 1.88.0
rust 1.rs 25ms 0.4ms 1.8MB 20ms 0ms rustc 1.88.0
c 8-i.c 29ms 0.5ms 1.5MB 20ms 0ms zigcc 0.14.1
zig 2.zig 30ms 0.0ms 1.0MB 20ms 0ms zig 0.14.1
rust 2.rs 30ms 0.2ms 1.8MB 20ms 0ms rustc 1.88.0
rust 3.rs 30ms 0.1ms 1.8MB 20ms 0ms rustc 1.90.0-nightly
c 8-i.c 33ms 0.5ms 2.1MB 27ms 0ms clang 14.0.0-1ubuntu1.1
zig 1.zig 33ms 0.1ms 1.1MB 30ms 0ms zig 0.14.1
c 2.c 33ms 0.3ms 1.5MB 30ms 0ms zigcc 0.14.1
v 1.v 33ms 0.2ms 1.6MB 27ms 0ms v/clang 0.4.11
v 1.v 34ms 0.2ms 2.3MB 23ms 0ms v/clang+gc 0.4.11
c 2.c 34ms 0.5ms 2.3MB 23ms 0ms gcc 15.1.0
cpp 1.cpp 34ms 0.4ms 1.9MB 30ms 0ms g++ 11.4.0
c 5.c 34ms 0.6ms 2.3MB 30ms 0ms gcc 15.1.0
c 5.c 34ms 0.1ms 1.5MB 30ms 0ms zigcc 0.14.1
cpp 1.cpp 34ms 0.6ms 2.3MB 30ms 0ms clang++ 14.0.0-1ubuntu1.1
c 2.c 34ms 0.9ms 2.1MB 30ms 0ms clang 14.0.0-1ubuntu1.1
c 5.c 35ms 0.9ms 2.1MB 30ms 0ms clang 14.0.0-1ubuntu1.1
nim 2.nim 35ms 0.5ms 1.8MB 30ms 0ms nim 2.2.4
c 8-i.c 36ms 0.4ms 2.3MB 30ms 0ms gcc 15.1.0
nim 2.nim 37ms 0.7ms 2.0MB 30ms 0ms nim/clang 2.2.4
odin 1-i.odin 38ms 0.0ms 1.5MB 30ms 0ms odin 2024
odin 1.odin 38ms 0.4ms 1.5MB 30ms 0ms odin 2024
crystal 1.cr 38ms 1.2ms 3.3MB 30ms 0ms crystal 1.16.3
go 1.go 38ms 1.4ms 3.5MB 30ms 0ms go 1.24.4
kotlin 1n.kt 38ms 0.7ms 3.6MB 30ms 0ms kotlin/native 2.1.20
crystal 2.cr 38ms 0.4ms 3.4MB 30ms 0ms crystal 1.16.3
go 1.go 39ms 1.1ms 0.3MB 30ms 0ms tinygo 0.38.0
swift 7.swift 39ms 1.1ms 10.0MB 30ms 0ms swift 6.1.2
d 1.d 39ms 0.6ms 2.9MB 30ms 0ms ldc2 1.41.0
d 2.d 39ms 0.7ms 2.9MB 30ms 0ms ldc2 1.41.0
ocaml 1.ml 41ms 1.9ms 5.2MB 33ms 0ms ocaml 5.3.0
dart 3.dart 46ms 0.8ms 6.3MB 37ms 0ms dart/exe 3.8.1
csharp 8.cs 46ms 1.5ms 9.9MB 30ms 0ms dotnet/aot 9.0.301
chapel 2.chpl 48ms 4.7ms 28.8MB 43ms 0ms chpl 1.31.0
wasm 1.rs 49ms 1.1ms 18.1MB 37ms 0ms wasmtime 34.0.1
wasm 2.rs 65ms 1.1ms 18.1MB 50ms 0ms wasmtime 34.0.1
d 1.d 71ms 1.2ms 4.6MB 60ms 0ms dmd 2.111.0
typescript 6.ts 80ms 1.2ms 57.8MB 67ms 10ms deno 2.3.7
javascript 6.js 80ms 0.7ms 58.6MB 67ms 10ms node 24.3.0
lua 4.lua 81ms 9.6ms 2.3MB 73ms 0ms luajit 2.1.0-beta3
javascript 6.js 82ms 1.0ms 45.0MB 87ms 3ms bun 1.2.17
haxe 2.hx 90ms 1.5ms 3.0MB 80ms 0ms haxe/hl/c 4.3.6
csharp 8.cs 97ms 3.2ms 27.5MB 77ms 7ms dotnet 9.0.301
csharp 9.cs 99ms 5.9ms 27.9MB 73ms 10ms dotnet 9.0.301
haxe 1.hx 112ms 4.0ms 3.0MB 103ms 0ms haxe/hl/c 4.3.6
kotlin 1-m.kt 118ms 1.1ms 49.4MB 167ms 13ms kotlin/jvm 21
java 1.java 122ms 0.7ms 45.1MB 160ms 20ms openjdk 21
java 1.java 124ms 0.3ms 47.8MB 157ms 23ms openjdk 23
java 1.java 127ms 6.3ms 81.5MB 160ms 30ms graal/jvm 17.0.8
haxe 3.hx 158ms 2.9ms 25.6MB 163ms 10ms haxe/cpp 4.3.6
csharp 8.cs 168ms 3.1ms 22.4MB 153ms 0ms mono 6.12.0
codon 1-m.py 173ms 4.4ms 9.4MB 483ms 0ms codon 0.19.0
python 2.py 182ms 1.2ms 57.9MB 160ms 10ms pypy 3.10.16
d 2.d 210ms 1.7ms 4.8MB 200ms 0ms dmd 2.111.0
haxe 2.hx 247ms 0.8ms 3.6MB 240ms 0ms haxe/hl/jit 1.16.0
java 1.java 251ms 6.5ms 45.0MB 157ms 150ms openjdk/zgc 21
haxe 1.hx 253ms 3.2ms 3.6MB 243ms 0ms haxe/hl/jit 1.16.0
java 2-m.java 303ms 5.7ms 354.8MB 453ms 53ms openjdk 21
python 1.py 304ms 1.2ms 57.1MB 280ms 10ms pypy 3.10.16
java 2-m.java 317ms 4.5ms 410.3MB 467ms 63ms openjdk 23
ruby 2-m.rb 323ms 13ms 309.9MB 563ms 123ms truffleruby 24.2.1
haxe 2.hx 681ms 16ms 4.4MB 670ms 0ms haxe/cpp 4.3.6
java 2.java 682ms 14ms 525.1MB 473ms 400ms openjdk/zgc 21
haxe 3.hx 744ms 120ms 3.1MB 603ms 197ms haxe/hl/c 4.3.6
haxe 3.hx 793ms 3.6ms 3.8MB 663ms 190ms haxe/hl/jit 1.16.0
haxe 1.hx 806ms 1.4ms 4.4MB 797ms 0ms haxe/cpp 4.3.6
python 1.py 921ms 6.9ms 8.4MB 910ms 0ms pyston 3.8.12
ruby 2.rb 1026ms 2.7ms 13.5MB 1007ms 7ms ruby/yjit 3.4.4
lua 4.lua 1148ms 64ms 2.3MB 1137ms 0ms lua 5.4.7
python 2.py 1314ms 5.3ms 8.3MB 1300ms 0ms pyston 3.8.12
perl 2.pl 2771ms 37ms 6.1MB 2760ms 0ms perl 5.40.2
ruby 2.rb 2901ms 120ms 12.8MB 2887ms 0ms ruby 3.4.4
python 2.py 2943ms 21ms 9.0MB 2930ms 0ms cpython 3.13.5
python 1.py 3003ms 91ms 9.0MB 2990ms 0ms cpython 3.13.5