All nbody problem benchmarks

Current benchmark data was generated on Sun Jul 13 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.5ms 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.8ms 2.3MB 160ms 0ms clang++ 14.0.0-1ubuntu1.1
zig 3.zig 198ms 1.1ms 1.0MB 190ms 0ms zig 0.14.1
rust 7-i.rs 219ms 0.6ms 1.8MB 210ms 0ms rustc 1.88.0
rust 1.rs 229ms 0.2ms 1.8MB 220ms 0ms rustc 1.88.0
c 8-i.c 267ms 0.8ms 1.5MB 260ms 0ms zigcc 0.14.1
rust 3.rs 279ms 0.6ms 1.9MB 270ms 0ms rustc 1.90.0-nightly
rust 2.rs 279ms 0.4ms 1.8MB 270ms 0ms rustc 1.88.0
zig 2.zig 280ms 0.5ms 1.0MB 270ms 0ms zig 0.14.1
c 8-i.c 301ms 1.4ms 2.1MB 290ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 309ms 1.5ms 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 5.c 313ms 1.4ms 2.3MB 303ms 0ms gcc 15.1.0
c 2.c 313ms 1.7ms 1.5MB 307ms 0ms zigcc 0.14.1
cpp 1.cpp 314ms 1.3ms 1.8MB 307ms 0ms g++ 11.4.0
zig 1.zig 315ms 0.8ms 1.1MB 303ms 0ms zig 0.14.1
cpp 1.cpp 316ms 1.0ms 2.3MB 310ms 0ms clang++ 14.0.0-1ubuntu1.1
c 5.c 316ms 0.6ms 2.1MB 310ms 0ms clang 14.0.0-1ubuntu1.1
c 5.c 316ms 2.1ms 1.5MB 310ms 0ms zigcc 0.14.1
c 2.c 319ms 2.0ms 2.1MB 310ms 0ms clang 14.0.0-1ubuntu1.1
nim 2.nim 320ms 1.7ms 1.8MB 310ms 0ms nim 2.2.4
chapel 2.chpl 322ms 1.9ms 28.9MB 317ms 0ms chpl 1.31.0
c 8-i.c 336ms 1.3ms 2.3MB 330ms 0ms gcc 15.1.0
crystal 2.cr 343ms 3.1ms 3.3MB 333ms 0ms crystal 1.16.3
nim 2.nim 343ms 3.6ms 2.0MB 337ms 0ms nim/clang 2.2.4
swift 7.swift 346ms 2.1ms 9.9MB 337ms 0ms swift 6.1.2
crystal 1.cr 347ms 1.5ms 3.3MB 337ms 0ms crystal 1.16.3
go 1.go 347ms 2.9ms 0.3MB 340ms 0ms tinygo 0.38.0
go 1.go 351ms 2.5ms 3.5MB 343ms 0ms go 1.24.5
kotlin 1n.kt 354ms 5.0ms 3.6MB 343ms 0ms kotlin/native 2.1.20
odin 1.odin 356ms 1.5ms 1.5MB 350ms 0ms odin 2024
odin 1-i.odin 357ms 1.1ms 1.6MB 350ms 0ms odin 2024
d 1.d 360ms 0.2ms 2.9MB 350ms 0ms ldc2 1.41.0
d 2.d 361ms 1.9ms 2.9MB 350ms 0ms ldc2 1.41.0
csharp 9.cs 368ms 4.8ms 27.9MB 340ms 7ms dotnet 9.0.302
csharp 8.cs 372ms 3.5ms 9.9MB 357ms 0ms dotnet/aot 9.0.302
ocaml 1.ml 374ms 2.6ms 5.2MB 367ms 0ms ocaml 5.3.0
wasm 1.rs 405ms 1.9ms 18.0MB 390ms 0ms wasmtime 34.0.1
dart 3.dart 411ms 3.9ms 6.1MB 400ms 0ms dart/exe 3.8.1
csharp 8.cs 419ms 3.4ms 27.9MB 403ms 7ms dotnet 9.0.302
java 1.java 442ms 1.0ms 45.1MB 480ms 17ms openjdk 21
kotlin 1.kt 443ms 0.3ms 49.2MB 487ms 13ms kotlin/jvm 21
java 1.java 444ms 3.9ms 48.3MB 480ms 23ms openjdk 23
java 1.java 454ms 0.5ms 81.1MB 490ms 30ms graal/jvm 17.0.8
javascript 6.js 455ms 2.0ms 58.8MB 447ms 3ms node 24.4.0
typescript 6.ts 464ms 2.3ms 58.0MB 450ms 10ms deno 2.4.1
java 1.java 563ms 6.0ms 44.7MB 483ms 133ms openjdk/zgc 21
wasm 2.rs 564ms 4.6ms 18.1MB 553ms 0ms wasmtime 34.0.1
javascript 6.js 607ms 14ms 44.8MB 610ms 0ms bun 1.2.18
d 1.d 678ms 2.2ms 4.6MB 670ms 0ms dmd 2.111.0
lua 4.lua 713ms 3.7ms 2.3MB 703ms 0ms luajit 2.1.0-beta3
ruby 2.rb 836ms 14ms 325.0MB 1103ms 117ms truffleruby 24.2.1
haxe 2.hx 856ms 5.4ms 3.1MB 843ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 1062ms 2.4ms 3.1MB 1053ms 0ms haxe/hl/c 4.3.6
java 2.java 1235ms 3.8ms 571.4MB 1363ms 87ms openjdk 21
csharp 8.cs 1250ms 3.2ms 22.1MB 1233ms 0ms mono 6.12.0
java 2.java 1310ms 91ms 794.4MB 1433ms 93ms openjdk 23
codon 1.py 1318ms 1.0ms 9.4MB 1627ms 0ms codon 0.19.0
python 2.py 1348ms 4.2ms 60.6MB 1320ms 10ms pypy 3.11.13
haxe 3.hx 1386ms 1.4ms 25.8MB 1533ms 30ms haxe/cpp 4.3.6
d 2.d 2033ms 7.7ms 4.8MB 2023ms 0ms dmd 2.111.0
haxe 2.hx 2400ms 5.3ms 3.6MB 2393ms 0ms haxe/hl/jit 1.16.0
haxe 1.hx 2475ms 2.8ms 3.8MB 2467ms 0ms haxe/hl/jit 1.16.0
python 1.py 2705ms 69ms 57.8MB 2677ms 13ms pypy 3.11.13
java 2.java 3270ms 60ms 2461.0MB 1670ms 1817ms 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.1MB 3940ms 1570ms haxe/hl/c 4.3.6
haxe 3.hx timeout 0.0ms 4.0MB 4160ms 1310ms 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 4977ms 10ms ruby/yjit 3.4.4

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
cpp 0-i.cpp 18ms 0.1ms 1.5MB 10ms 0ms g++ 11.4.0
rust 4-i.rs 19ms 0.1ms 1.8MB 10ms 0ms rustc 1.88.0
cpp 0-i.cpp 19ms 0.4ms 2.3MB 10ms 0ms clang++ 14.0.0-1ubuntu1.1
zig 3.zig 22ms 0.3ms 1.0MB 10ms 0ms zig 0.14.1
rust 7-i.rs 24ms 0.3ms 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.3ms 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.2ms 1.8MB 20ms 0ms rustc 1.90.0-nightly
rust 2.rs 30ms 0.3ms 1.6MB 20ms 0ms rustc 1.88.0
c 8-i.c 32ms 0.5ms 2.1MB 20ms 0ms clang 14.0.0-1ubuntu1.1
v 1.v 33ms 0.0ms 1.6MB 30ms 0ms v/clang 0.4.11
c 2.c 33ms 0.4ms 1.5MB 30ms 0ms zigcc 0.14.1
c 5.c 33ms 0.6ms 2.3MB 30ms 0ms gcc 15.1.0
v 1.v 34ms 0.2ms 2.3MB 27ms 0ms v/clang+gc 0.4.11
cpp 1.cpp 34ms 0.6ms 2.3MB 30ms 0ms clang++ 14.0.0-1ubuntu1.1
zig 1.zig 34ms 0.6ms 1.1MB 30ms 0ms zig 0.14.1
c 2.c 34ms 0.7ms 2.3MB 30ms 0ms gcc 15.1.0
c 5.c 34ms 0.4ms 2.1MB 30ms 0ms clang 14.0.0-1ubuntu1.1
cpp 1.cpp 34ms 0.9ms 1.8MB 30ms 0ms g++ 11.4.0
c 5.c 35ms 0.6ms 1.5MB 30ms 0ms zigcc 0.14.1
nim 2.nim 35ms 0.8ms 1.8MB 30ms 0ms nim 2.2.4
c 8-i.c 36ms 0.5ms 2.3MB 30ms 0ms gcc 15.1.0
c 2.c 36ms 3.1ms 2.1MB 30ms 0ms clang 14.0.0-1ubuntu1.1
nim 2.nim 36ms 0.6ms 2.0MB 30ms 0ms nim/clang 2.2.4
go 1.go 37ms 1.7ms 0.3MB 30ms 0ms tinygo 0.38.0
crystal 1.cr 37ms 0.6ms 3.3MB 30ms 0ms crystal 1.16.3
crystal 2.cr 38ms 0.9ms 3.3MB 30ms 0ms crystal 1.16.3
odin 1-i.odin 38ms 0.8ms 1.5MB 30ms 0ms odin 2024
go 1.go 38ms 1.3ms 3.5MB 30ms 0ms go 1.24.5
d 2.d 38ms 0.3ms 2.9MB 30ms 0ms ldc2 1.41.0
d 1.d 39ms 0.4ms 2.9MB 30ms 0ms ldc2 1.41.0
kotlin 1n.kt 39ms 1.6ms 3.6MB 30ms 0ms kotlin/native 2.1.20
odin 1.odin 39ms 0.1ms 1.5MB 30ms 0ms odin 2024
swift 7.swift 39ms 0.9ms 9.9MB 30ms 0ms swift 6.1.2
ocaml 1.ml 40ms 0.1ms 5.2MB 30ms 0ms ocaml 5.3.0
chapel 2.chpl 43ms 0.4ms 28.8MB 40ms 0ms chpl 1.31.0
dart 3.dart 45ms 0.7ms 6.3MB 40ms 0ms dart/exe 3.8.1
csharp 8.cs 46ms 1.1ms 9.9MB 40ms 0ms dotnet/aot 9.0.302
wasm 1.rs 47ms 0.1ms 18.1MB 37ms 0ms wasmtime 34.0.1
wasm 2.rs 65ms 1.7ms 18.1MB 50ms 0ms wasmtime 34.0.1
d 1.d 72ms 0.1ms 4.8MB 60ms 0ms dmd 2.111.0
lua 4.lua 74ms 0.9ms 2.3MB 67ms 0ms luajit 2.1.0-beta3
typescript 6.ts 78ms 1.2ms 58.1MB 63ms 10ms deno 2.4.1
javascript 6.js 79ms 3.2ms 58.9MB 67ms 10ms node 24.4.0
javascript 6.js 80ms 1.8ms 44.9MB 83ms 7ms bun 1.2.18
haxe 2.hx 89ms 2.0ms 3.0MB 80ms 0ms haxe/hl/c 4.3.6
csharp 9.cs 91ms 0.6ms 28.3MB 73ms 7ms dotnet 9.0.302
csharp 8.cs 97ms 3.8ms 27.6MB 80ms 7ms dotnet 9.0.302
haxe 1.hx 110ms 1.4ms 3.0MB 100ms 0ms haxe/hl/c 4.3.6
java 1.java 116ms 4.0ms 45.4MB 143ms 23ms openjdk 21
kotlin 1-m.kt 119ms 1.7ms 49.5MB 170ms 13ms kotlin/jvm 21
java 1.java 119ms 2.3ms 81.5MB 150ms 27ms graal/jvm 17.0.8
java 1.java 120ms 2.0ms 47.9MB 157ms 13ms openjdk 23
haxe 3.hx 152ms 0.9ms 25.6MB 153ms 7ms haxe/cpp 4.3.6
csharp 8.cs 165ms 0.7ms 22.6MB 150ms 0ms mono 6.12.0
codon 1-m.py 176ms 3.2ms 9.4MB 487ms 0ms codon 0.19.0
python 2.py 178ms 3.3ms 58.3MB 153ms 10ms pypy 3.11.13
d 2.d 207ms 2.8ms 4.8MB 197ms 0ms dmd 2.111.0
java 1.java 240ms 5.7ms 44.7MB 153ms 140ms openjdk/zgc 21
haxe 2.hx 245ms 0.5ms 3.8MB 237ms 0ms haxe/hl/jit 1.16.0
haxe 1.hx 252ms 1.0ms 3.6MB 240ms 0ms haxe/hl/jit 1.16.0
java 2-m.java 294ms 9.4ms 366.4MB 437ms 50ms openjdk 21
ruby 2-m.rb 309ms 6.6ms 309.6MB 560ms 103ms truffleruby 24.2.1
python 1.py 309ms 4.0ms 57.8MB 287ms 10ms pypy 3.11.13
java 2-m.java 317ms 4.3ms 397.4MB 450ms 67ms openjdk 23
java 2.java 674ms 5.7ms 533.2MB 460ms 400ms openjdk/zgc 21
haxe 2.hx 674ms 2.5ms 4.4MB 663ms 0ms haxe/cpp 4.3.6
haxe 3.hx 677ms 2.3ms 3.1MB 523ms 210ms haxe/hl/c 4.3.6
haxe 3.hx 786ms 5.0ms 3.8MB 643ms 210ms haxe/hl/jit 1.16.0
haxe 1.hx 808ms 3.0ms 4.4MB 797ms 0ms haxe/cpp 4.3.6
python 1.py 936ms 11ms 8.3MB 927ms 0ms pyston 3.8.12
ruby 2.rb 1028ms 6.1ms 13.5MB 1010ms 3ms ruby/yjit 3.4.4
lua 4.lua 1154ms 10ms 2.3MB 1143ms 0ms lua 5.4.7
python 2.py 1312ms 18ms 8.3MB 1300ms 0ms pyston 3.8.12
perl 2.pl 2731ms 3.5ms 6.1MB 2723ms 0ms perl 5.40.2
python 1.py 2893ms 26ms 8.9MB 2883ms 0ms cpython 3.13.5
ruby 2.rb 2980ms 14ms 12.8MB 2963ms 7ms ruby 3.4.4
python 2.py 3043ms 14ms 9.0MB 3030ms 0ms cpython 3.13.5