All nbody problem benchmarks

Current benchmark data was generated on Fri Aug 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 163ms 0.3ms 1.8MB 157ms 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 0.5ms 1.0MB 190ms 0ms zig 0.14.1
rust 7-i.rs 218ms 1.1ms 1.8MB 210ms 0ms rustc 1.88.0
rust 1.rs 229ms 0.6ms 1.8MB 220ms 0ms rustc 1.88.0
c 8-i.c 268ms 0.7ms 1.5MB 260ms 0ms zigcc 0.14.1
rust 3.rs 279ms 0.5ms 1.9MB 270ms 0ms rustc 1.90.0-nightly
rust 2.rs 279ms 0.3ms 1.6MB 270ms 0ms rustc 1.88.0
zig 2.zig 279ms 0.5ms 1.0MB 270ms 0ms zig 0.14.1
c 8-i.c 303ms 1.7ms 2.1MB 290ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 310ms 1.5ms 2.3MB 300ms 0ms gcc 15.1.0
v 1.v 312ms 1.0ms 2.3MB 300ms 0ms v/clang+gc 0.4.11
c 2.c 312ms 1.1ms 1.5MB 300ms 0ms zigcc 0.14.1
c 5.c 314ms 2.4ms 2.3MB 303ms 0ms gcc 15.1.0
v 1.v 314ms 1.2ms 1.6MB 307ms 0ms v/clang 0.4.11
cpp 1.cpp 315ms 1.4ms 2.3MB 307ms 0ms clang++ 14.0.0-1ubuntu1.1
c 5.c 315ms 1.3ms 2.1MB 307ms 0ms clang 14.0.0-1ubuntu1.1
zig 1.zig 315ms 0.9ms 1.1MB 310ms 0ms zig 0.14.1
cpp 1.cpp 316ms 0.7ms 1.9MB 307ms 0ms g++ 11.4.0
c 5.c 316ms 1.0ms 1.5MB 310ms 0ms zigcc 0.14.1
c 2.c 317ms 0.2ms 2.1MB 310ms 0ms clang 14.0.0-1ubuntu1.1
nim 2.nim 319ms 1.0ms 2.9MB 310ms 0ms nim 2.2.4
chapel 2.chpl 324ms 1.7ms 28.8MB 320ms 0ms chpl 1.31.0
c 8-i.c 336ms 0.3ms 2.3MB 330ms 0ms gcc 15.1.0
nim 2.nim 343ms 2.4ms 2.0MB 333ms 0ms nim/clang 2.2.4
swift 7.swift 343ms 0.8ms 9.9MB 330ms 0ms swift 6.1.2
crystal 2.cr 345ms 2.9ms 3.4MB 337ms 0ms crystal 1.17.0
crystal 1.cr 346ms 3.1ms 3.4MB 337ms 0ms crystal 1.17.0
go 1.go 349ms 3.6ms 0.3MB 340ms 0ms tinygo 0.38.0
go 1.go 350ms 1.9ms 3.5MB 340ms 0ms go 1.24.5
kotlin 1n.kt 352ms 2.5ms 3.5MB 340ms 0ms kotlin/native 2.1.20
odin 1.odin 353ms 0.7ms 1.5MB 347ms 0ms odin 2024
odin 1-i.odin 357ms 1.6ms 1.5MB 350ms 0ms odin 2024
csharp 9.cs 360ms 0.9ms 27.9MB 340ms 7ms dotnet 9.0.303
d 1.d 361ms 0.5ms 2.9MB 350ms 0ms ldc2 1.41.0
d 2.d 361ms 1.4ms 2.9MB 350ms 0ms ldc2 1.41.0
csharp 8.cs 370ms 0.9ms 9.9MB 357ms 0ms dotnet/aot 9.0.303
ocaml 1.ml 373ms 2.9ms 5.2MB 363ms 0ms ocaml 5.3.0
dart 3.dart 408ms 3.1ms 6.3MB 397ms 0ms dart/exe 3.8.2
wasm 1.rs 410ms 1.4ms 17.8MB 400ms 0ms wasmtime 35.0.0
csharp 8.cs 420ms 3.5ms 27.6MB 400ms 7ms dotnet 9.0.303
java 1.java 442ms 1.6ms 81.4MB 473ms 23ms graal/jvm 17.0.8
kotlin 1.kt 442ms 1.2ms 49.6MB 483ms 20ms kotlin/jvm 21
java 1.java 445ms 1.9ms 47.7MB 480ms 17ms openjdk 23
java 1.java 446ms 15ms 45.2MB 487ms 13ms openjdk 21
javascript 6.js 460ms 3.5ms 59.2MB 447ms 10ms node 24.4.1
typescript 6.ts 466ms 5.0ms 58.3MB 457ms 7ms deno 2.4.3
wasm 2.rs 565ms 5.2ms 17.9MB 553ms 0ms wasmtime 35.0.0
java 1.java 567ms 4.2ms 44.9MB 490ms 140ms openjdk/zgc 21
javascript 6.js 596ms 2.0ms 43.5MB 597ms 10ms bun 1.2.19
d 1.d 683ms 2.2ms 4.8MB 673ms 0ms dmd 2.111.0
lua 4.lua 711ms 0.9ms 2.4MB 700ms 0ms luajit 2.1.0-beta3
ruby 2.rb 817ms 1.5ms 309.6MB 1057ms 110ms truffleruby 24.2.2
haxe 2.hx 856ms 3.6ms 3.0MB 847ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 1084ms 8.6ms 3.0MB 1073ms 0ms haxe/hl/c 4.3.6
java 2.java 1238ms 17ms 608.0MB 1377ms 77ms openjdk 21
java 2.java 1243ms 5.5ms 744.5MB 1360ms 97ms openjdk 23
csharp 8.cs 1246ms 2.5ms 22.8MB 1230ms 0ms mono 6.12.0
python 2.py 1342ms 2.7ms 60.5MB 1317ms 13ms pypy 3.11.13
haxe 3.hx 1407ms 30ms 25.6MB 1560ms 30ms haxe/cpp 4.3.6
codon 1.py 1463ms 143ms 9.4MB 1773ms 0ms codon 0.19.1
d 2.d 2033ms 7.1ms 4.8MB 2023ms 0ms dmd 2.111.0
haxe 2.hx 2414ms 4.4ms 3.6MB 2403ms 0ms haxe/hl/jit 1.16.0
haxe 1.hx 2476ms 3.3ms 3.6MB 2467ms 0ms haxe/hl/jit 1.16.0
python 1.py 2650ms 17ms 57.8MB 2627ms 10ms pypy 3.11.13
java 2.java 3248ms 81ms 2438.6MB 1660ms 1800ms 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.5MB 4990ms 0ms haxe/cpp 4.3.6
haxe 3.hx timeout 0.0ms 3.2MB 3920ms 1573ms haxe/hl/c 4.3.6
haxe 3.hx timeout 0.0ms 3.9MB 4133ms 1323ms 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 7ms ruby 3.4.5
ruby 2.rb timeout 0.0ms 13.5MB 4980ms 0ms ruby/yjit 3.4.5

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.1ms 2.3MB 10ms 0ms clang++ 14.0.0-1ubuntu1.1
zig 3.zig 22ms 0.4ms 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.5ms 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.1ms 1.0MB 20ms 0ms zig 0.14.1
rust 3.rs 30ms 0.1ms 1.9MB 20ms 0ms rustc 1.90.0-nightly
rust 2.rs 30ms 0.1ms 1.6MB 20ms 0ms rustc 1.88.0
c 8-i.c 32ms 0.4ms 2.1MB 23ms 0ms clang 14.0.0-1ubuntu1.1
v 1.v 33ms 0.3ms 1.6MB 30ms 0ms v/clang 0.4.11
cpp 1.cpp 33ms 0.1ms 1.8MB 23ms 0ms g++ 11.4.0
zig 1.zig 33ms 0.3ms 1.1MB 30ms 0ms zig 0.14.1
v 1.v 33ms 0.3ms 2.3MB 30ms 0ms v/clang+gc 0.4.11
cpp 1.cpp 33ms 0.1ms 2.3MB 30ms 0ms clang++ 14.0.0-1ubuntu1.1
c 5.c 34ms 0.4ms 2.3MB 30ms 0ms gcc 15.1.0
c 2.c 34ms 0.1ms 1.5MB 30ms 0ms zigcc 0.14.1
c 5.c 34ms 0.4ms 2.1MB 27ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 34ms 0.3ms 2.3MB 30ms 0ms gcc 15.1.0
c 2.c 34ms 0.4ms 2.1MB 30ms 0ms clang 14.0.0-1ubuntu1.1
c 5.c 34ms 0.6ms 1.5MB 30ms 0ms zigcc 0.14.1
nim 2.nim 34ms 0.2ms 2.9MB 30ms 0ms nim 2.2.4
c 8-i.c 36ms 0.2ms 2.3MB 30ms 0ms gcc 15.1.0
crystal 2.cr 37ms 0.5ms 3.4MB 30ms 0ms crystal 1.17.0
go 1.go 37ms 1.3ms 0.3MB 30ms 0ms tinygo 0.38.0
odin 1.odin 38ms 0.8ms 1.5MB 30ms 0ms odin 2024
nim 2.nim 38ms 1.4ms 2.0MB 30ms 0ms nim/clang 2.2.4
odin 1-i.odin 38ms 0.5ms 1.5MB 30ms 0ms odin 2024
go 1.go 38ms 0.1ms 3.5MB 30ms 0ms go 1.24.5
d 2.d 39ms 0.7ms 2.9MB 30ms 0ms ldc2 1.41.0
kotlin 1n.kt 39ms 0.6ms 3.5MB 30ms 0ms kotlin/native 2.1.20
swift 7.swift 39ms 0.1ms 9.8MB 30ms 0ms swift 6.1.2
d 1.d 39ms 0.3ms 2.9MB 30ms 0ms ldc2 1.41.0
crystal 1.cr 39ms 0.1ms 3.4MB 30ms 0ms crystal 1.17.0
ocaml 1.ml 42ms 0.9ms 5.3MB 30ms 0ms ocaml 5.3.0
chapel 2.chpl 43ms 1.3ms 28.8MB 40ms 0ms chpl 1.31.0
dart 3.dart 45ms 0.4ms 6.5MB 40ms 0ms dart/exe 3.8.2
csharp 8.cs 46ms 1.3ms 9.9MB 33ms 0ms dotnet/aot 9.0.303
wasm 1.rs 48ms 0.9ms 17.8MB 40ms 0ms wasmtime 35.0.0
wasm 2.rs 65ms 1.2ms 17.8MB 50ms 0ms wasmtime 35.0.0
d 1.d 71ms 1.1ms 4.8MB 60ms 0ms dmd 2.111.0
lua 4.lua 77ms 1.2ms 2.3MB 70ms 0ms luajit 2.1.0-beta3
typescript 6.ts 78ms 0.8ms 57.5MB 60ms 10ms deno 2.4.3
javascript 6.js 79ms 0.9ms 43.5MB 80ms 3ms bun 1.2.19
javascript 6.js 79ms 2.5ms 58.8MB 67ms 7ms node 24.4.1
haxe 2.hx 88ms 0.2ms 3.0MB 80ms 0ms haxe/hl/c 4.3.6
csharp 9.cs 93ms 5.0ms 27.8MB 73ms 7ms dotnet 9.0.303
csharp 8.cs 94ms 2.2ms 27.6MB 77ms 3ms dotnet 9.0.303
haxe 1.hx 111ms 2.9ms 3.1MB 103ms 0ms haxe/hl/c 4.3.6
java 1.java 116ms 4.3ms 45.3MB 153ms 20ms openjdk 21
kotlin 1-m.kt 118ms 1.3ms 49.6MB 160ms 20ms kotlin/jvm 21
java 1.java 121ms 0.2ms 47.8MB 153ms 17ms openjdk 23
java 1-m.java 122ms 8.7ms 81.5MB 153ms 33ms graal/jvm 17.0.8
haxe 3.hx 153ms 2.6ms 25.6MB 147ms 10ms haxe/cpp 4.3.6
csharp 8.cs 162ms 3.6ms 22.9MB 150ms 0ms mono 6.12.0
codon 1-m.py 176ms 4.7ms 9.4MB 487ms 0ms codon 0.19.1
python 2.py 176ms 4.7ms 58.5MB 153ms 10ms pypy 3.11.13
d 2.d 208ms 2.9ms 4.8MB 200ms 0ms dmd 2.111.0
haxe 2.hx 244ms 1.1ms 3.6MB 237ms 0ms haxe/hl/jit 1.16.0
java 1.java 247ms 2.0ms 44.8MB 173ms 140ms openjdk/zgc 21
haxe 1.hx 253ms 2.2ms 3.6MB 243ms 0ms haxe/hl/jit 1.16.0
java 2-m.java 291ms 5.9ms 373.0MB 427ms 53ms openjdk 21
python 1.py 305ms 1.6ms 57.8MB 283ms 7ms pypy 3.11.13
java 2-m.java 307ms 7.7ms 397.4MB 443ms 67ms openjdk 23
ruby 2-m.rb 309ms 13ms 309.8MB 537ms 117ms truffleruby 24.2.2
java 2.java 671ms 7.7ms 522.5MB 477ms 387ms openjdk/zgc 21
haxe 2.hx 674ms 7.0ms 4.4MB 663ms 0ms haxe/cpp 4.3.6
haxe 3.hx 676ms 2.5ms 3.3MB 530ms 203ms haxe/hl/c 4.3.6
haxe 3.hx 795ms 13ms 3.8MB 643ms 210ms haxe/hl/jit 1.16.0
haxe 1.hx 812ms 5.7ms 4.4MB 803ms 0ms haxe/cpp 4.3.6
python 1.py 940ms 29ms 8.3MB 927ms 0ms pyston 3.8.12
ruby 2.rb 1044ms 2.3ms 13.5MB 1023ms 7ms ruby/yjit 3.4.5
lua 4.lua 1145ms 12ms 2.3MB 1137ms 0ms lua 5.4.7
python 2.py 1345ms 52ms 8.1MB 1330ms 0ms pyston 3.8.12
perl 2.pl 2772ms 20ms 6.1MB 2760ms 0ms perl 5.40.2
ruby 2.rb 2832ms 56ms 12.8MB 2813ms 7ms ruby 3.4.5
python 1.py 2971ms 99ms 8.9MB 2960ms 0ms cpython 3.13.5
python 2.py 2989ms 51ms 9.0MB 2977ms 0ms cpython 3.13.5