All nbody problem benchmarks

Current benchmark data was generated on Thu May 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 166ms 3.7ms 1.9MB 157ms 0ms rustc 1.86.0
cpp 0-i.cpp 167ms 0.2ms 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.2ms 1.0MB 190ms 0ms zig 0.14.0
rust 1.rs 238ms 0.2ms 1.8MB 230ms 0ms rustc 1.86.0
rust 7-i.rs 239ms 2.5ms 1.8MB 230ms 0ms rustc 1.86.0
c 8-i.c 267ms 0.0ms 1.5MB 260ms 0ms zigcc 0.14.0
rust 3.rs 279ms 1.0ms 1.8MB 270ms 0ms rustc 1.88.0-nightly
zig 2.zig 279ms 0.4ms 1.0MB 270ms 0ms zig 0.14.0
rust 2.rs 284ms 1.0ms 1.6MB 273ms 0ms rustc 1.86.0
c 8-i.c 302ms 1.1ms 2.1MB 290ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 309ms 1.2ms 2.3MB 300ms 0ms gcc 15.1.0
v 1.v 311ms 1.2ms 1.6MB 300ms 0ms v/clang 0.4.10
v 1.v 311ms 0.2ms 2.3MB 300ms 0ms v/clang+gc 0.4.10
c 5.c 313ms 1.1ms 2.3MB 300ms 0ms gcc 15.1.0
cpp 1.cpp 314ms 0.8ms 2.3MB 307ms 0ms clang++ 14.0.0-1ubuntu1.1
cpp 1.cpp 315ms 2.0ms 1.8MB 303ms 0ms g++ 11.4.0
c 2.c 315ms 3.3ms 1.5MB 307ms 0ms zigcc 0.14.0
c 5.c 315ms 1.3ms 2.1MB 310ms 0ms clang 14.0.0-1ubuntu1.1
zig 1.zig 315ms 1.0ms 1.1MB 307ms 0ms zig 0.14.0
c 5.c 316ms 1.7ms 1.5MB 307ms 0ms zigcc 0.14.0
c 2.c 318ms 1.3ms 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 324ms 3.1ms 28.8MB 320ms 0ms chpl 1.31.0
c 8-i.c 337ms 0.2ms 2.3MB 330ms 0ms gcc 15.1.0
crystal 1.cr 343ms 0.7ms 3.3MB 330ms 0ms crystal 1.16.2
nim 2.nim 344ms 1.7ms 2.0MB 337ms 0ms nim/clang 2.2.4
crystal 2.cr 344ms 2.9ms 3.3MB 333ms 0ms crystal 1.16.2
swift 7.swift 345ms 0.9ms 10.0MB 337ms 0ms swift 6.1.0
go 1.go 346ms 0.8ms 0.4MB 340ms 0ms tinygo 0.37.0
kotlin 1n.kt 350ms 1.7ms 3.5MB 340ms 0ms kotlin/native 2.1.20
go 1.go 350ms 2.0ms 3.5MB 340ms 0ms go 1.24.2
odin 1.odin 355ms 2.4ms 1.5MB 347ms 0ms odin 2024
odin 1-i.odin 358ms 2.1ms 1.5MB 350ms 0ms odin 2024
csharp 9.cs 358ms 2.8ms 28.0MB 340ms 7ms dotnet 9.0.203
d 1.d 362ms 1.3ms 2.9MB 350ms 0ms ldc2 1.40.1
d 2.d 362ms 0.9ms 2.9MB 350ms 0ms ldc2 1.40.1
csharp 8.cs 370ms 3.1ms 9.9MB 360ms 0ms dotnet/aot 9.0.203
ocaml 1.ml 372ms 2.6ms 5.2MB 363ms 0ms ocaml 5.3.0
wasm 1.rs 404ms 2.4ms 17.8MB 393ms 0ms wasmtime 32.0.0
dart 3.dart 408ms 3.0ms 6.3MB 400ms 0ms dart/exe 3.7.3
csharp 8.cs 423ms 3.6ms 27.5MB 400ms 7ms dotnet 9.0.203
java 1.java 440ms 3.0ms 45.1MB 477ms 20ms openjdk 21
kotlin 1.kt 443ms 1.3ms 49.4MB 487ms 13ms kotlin/jvm 21
java 1.java 444ms 1.1ms 48.2MB 480ms 20ms openjdk 23
java 1.java 447ms 4.2ms 81.5MB 483ms 27ms graal/jvm 17.0.8
javascript 6.js 457ms 5.8ms 56.0MB 443ms 10ms node 23.11.0
typescript 6.ts 469ms 5.6ms 55.9MB 453ms 3ms deno 2.3.1
wasm 2.rs 563ms 3.0ms 17.9MB 550ms 0ms wasmtime 32.0.0
java 1.java 570ms 5.4ms 44.7MB 497ms 133ms openjdk/zgc 21
javascript 6.js 609ms 19ms 45.5MB 600ms 3ms bun 1.2.11
d 1.d 680ms 3.0ms 4.8MB 670ms 0ms dmd 2.111.0
lua 4.lua 713ms 2.4ms 2.3MB 703ms 0ms luajit 2.1.0-beta3
ruby 2.rb 820ms 8.8ms 310.7MB 1043ms 117ms truffleruby 24.2.1
haxe 2.hx 856ms 3.2ms 3.0MB 847ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 1078ms 12ms 3.1MB 1070ms 0ms haxe/hl/c 4.3.6
java 2.java 1230ms 3.1ms 579.3MB 1353ms 83ms openjdk 21
java 2.java 1248ms 1.3ms 759.3MB 1357ms 110ms openjdk 23
csharp 8.cs 1250ms 5.1ms 20.4MB 1237ms 0ms mono 6.12.0
codon 1.py 1317ms 2.2ms 8.9MB 1623ms 0ms codon 0.18.2
python 2.py 1359ms 3.9ms 58.1MB 1333ms 10ms pypy 3.10.16
haxe 3.hx 1411ms 41ms 25.6MB 1543ms 37ms haxe/cpp 4.3.6
d 2.d 2030ms 3.5ms 4.8MB 2023ms 0ms dmd 2.111.0
haxe 2.hx 2404ms 5.5ms 3.6MB 2397ms 0ms haxe/hl/jit 1.15.0
haxe 1.hx 2482ms 12ms 3.6MB 2473ms 0ms haxe/hl/jit 1.15.0
python 1.py 2652ms 15ms 57.1MB 2627ms 13ms pypy 3.10.16
java 2.java 3219ms 18ms 2343.5MB 1627ms 1803ms 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 3880ms 1650ms haxe/hl/c 4.3.6
haxe 3.hx timeout 0.0ms 3.9MB 4143ms 1347ms 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 8.8MB 4990ms 0ms cpython 3.13.3
python 2.py timeout 0.0ms 8.9MB 4990ms 0ms cpython 3.13.3
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 4987ms 3ms ruby 3.4.3
ruby 2.rb timeout 0.0ms 13.5MB 4983ms 0ms ruby/yjit 3.4.3

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.86.0
cpp 0-i.cpp 18ms 0.0ms 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.3ms 1.1MB 10ms 0ms zig 0.14.0
rust 1.rs 26ms 0.2ms 1.9MB 20ms 0ms rustc 1.86.0
rust 7-i.rs 26ms 0.1ms 1.9MB 20ms 0ms rustc 1.86.0
c 8-i.c 29ms 0.3ms 1.5MB 20ms 0ms zigcc 0.14.0
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.88.0-nightly
rust 2.rs 31ms 0.1ms 1.6MB 20ms 0ms rustc 1.86.0
c 8-i.c 33ms 0.1ms 2.1MB 23ms 0ms clang 14.0.0-1ubuntu1.1
c 2.c 33ms 0.5ms 1.5MB 27ms 0ms zigcc 0.14.0
c 2.c 33ms 0.5ms 2.3MB 27ms 0ms gcc 15.1.0
c 5.c 33ms 0.2ms 2.3MB 27ms 0ms gcc 15.1.0
v 1.v 34ms 0.4ms 1.6MB 30ms 0ms v/clang 0.4.10
zig 1.zig 34ms 0.6ms 1.1MB 23ms 0ms zig 0.14.0
v 1.v 34ms 0.1ms 2.3MB 27ms 0ms v/clang+gc 0.4.10
cpp 1.cpp 34ms 0.3ms 2.3MB 27ms 0ms clang++ 14.0.0-1ubuntu1.1
c 5.c 34ms 0.2ms 2.1MB 30ms 0ms clang 14.0.0-1ubuntu1.1
cpp 1.cpp 34ms 0.9ms 1.9MB 30ms 0ms g++ 11.4.0
c 5.c 35ms 0.4ms 1.5MB 30ms 0ms zigcc 0.14.0
c 2.c 35ms 1.6ms 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.1ms 2.3MB 30ms 0ms gcc 15.1.0
nim 2.nim 37ms 0.5ms 2.0MB 30ms 0ms nim/clang 2.2.4
go 1.go 37ms 0.7ms 0.4MB 30ms 0ms tinygo 0.37.0
crystal 2.cr 37ms 0.5ms 3.3MB 30ms 0ms crystal 1.16.2
crystal 1.cr 38ms 1.1ms 3.3MB 30ms 0ms crystal 1.16.2
go 1.go 38ms 0.9ms 3.5MB 30ms 0ms go 1.24.2
d 2.d 38ms 0.3ms 2.9MB 30ms 0ms ldc2 1.40.1
swift 7.swift 38ms 0.6ms 10.1MB 30ms 0ms swift 6.1.0
odin 1.odin 38ms 0.9ms 1.5MB 30ms 0ms odin 2024
odin 1-i.odin 38ms 1.6ms 1.5MB 30ms 0ms odin 2024
kotlin 1n.kt 39ms 0.9ms 3.6MB 30ms 0ms kotlin/native 2.1.20
d 1.d 39ms 0.3ms 2.9MB 30ms 0ms ldc2 1.40.1
ocaml 1.ml 40ms 0.0ms 5.3MB 30ms 0ms ocaml 5.3.0
chapel 2.chpl 45ms 1.4ms 28.8MB 40ms 0ms chpl 1.31.0
dart 3.dart 45ms 0.2ms 6.4MB 40ms 0ms dart/exe 3.7.3
csharp 8.cs 46ms 1.1ms 9.9MB 37ms 0ms dotnet/aot 9.0.203
wasm 1.rs 48ms 1.3ms 19.8MB 40ms 0ms wasmtime 32.0.0
wasm 2.rs 63ms 0.2ms 17.9MB 50ms 0ms wasmtime 32.0.0
d 1.d 72ms 0.8ms 4.8MB 60ms 0ms dmd 2.111.0
lua 4.lua 76ms 0.9ms 2.3MB 70ms 0ms luajit 2.1.0-beta3
javascript 6.js 76ms 0.8ms 55.8MB 67ms 3ms node 23.11.0
typescript 6.ts 77ms 0.2ms 54.1MB 63ms 10ms deno 2.3.1
javascript 6.js 80ms 2.5ms 45.6MB 73ms 3ms bun 1.2.11
haxe 2.hx 89ms 1.5ms 3.0MB 80ms 0ms haxe/hl/c 4.3.6
csharp 9.cs 90ms 1.4ms 27.6MB 73ms 3ms dotnet 9.0.203
csharp 8.cs 94ms 1.2ms 27.5MB 80ms 3ms dotnet 9.0.203
haxe 1.hx 110ms 1.1ms 3.0MB 100ms 0ms haxe/hl/c 4.3.6
java 1.java 119ms 2.0ms 45.2MB 157ms 20ms openjdk 21
kotlin 1-m.kt 119ms 0.7ms 49.7MB 167ms 20ms kotlin/jvm 21
java 1.java 120ms 1.7ms 48.4MB 157ms 20ms openjdk 23
java 1.java 125ms 4.1ms 81.6MB 153ms 33ms graal/jvm 17.0.8
haxe 3.hx 152ms 0.6ms 25.8MB 147ms 10ms haxe/cpp 4.3.6
csharp 8.cs 164ms 3.9ms 22.8MB 150ms 0ms mono 6.12.0
codon 1-m.py 174ms 3.5ms 8.8MB 483ms 0ms codon 0.18.2
python 2.py 180ms 3.6ms 57.9MB 153ms 10ms pypy 3.10.16
d 2.d 207ms 0.5ms 4.6MB 200ms 0ms dmd 2.111.0
java 1.java 243ms 3.0ms 44.8MB 167ms 140ms openjdk/zgc 21
haxe 2.hx 246ms 2.2ms 3.6MB 240ms 0ms haxe/hl/jit 1.15.0
haxe 1.hx 252ms 2.5ms 3.8MB 240ms 0ms haxe/hl/jit 1.15.0
java 2-m.java 286ms 3.4ms 356.7MB 417ms 53ms openjdk 21
python 1.py 303ms 3.1ms 57.2MB 280ms 10ms pypy 3.10.16
java 2-m.java 310ms 7.8ms 413.9MB 440ms 70ms openjdk 23
ruby 2-m.rb 312ms 9.0ms 309.6MB 540ms 117ms truffleruby 24.2.1
haxe 3.hx 670ms 0.9ms 3.1MB 530ms 200ms haxe/hl/c 4.3.6
haxe 2.hx 677ms 8.5ms 4.4MB 670ms 0ms haxe/cpp 4.3.6
java 2.java 684ms 9.8ms 530.4MB 453ms 420ms openjdk/zgc 21
haxe 3.hx 786ms 4.1ms 3.9MB 643ms 210ms haxe/hl/jit 1.15.0
haxe 1.hx 809ms 5.4ms 4.4MB 797ms 0ms haxe/cpp 4.3.6
python 1.py 926ms 7.5ms 8.3MB 910ms 0ms pyston 3.8.12
ruby 2.rb 1025ms 2.6ms 13.5MB 1010ms 0ms ruby/yjit 3.4.3
lua 4.lua 1142ms 41ms 2.3MB 1133ms 0ms lua 5.4.7
python 2.py 1300ms 5.2ms 8.3MB 1293ms 0ms pyston 3.8.12
perl 2.pl 2755ms 46ms 6.1MB 2747ms 0ms perl 5.40.2
ruby 2.rb 2856ms 28ms 12.8MB 2840ms 0ms ruby 3.4.3
python 1.py 2952ms 2.0ms 8.9MB 2940ms 0ms cpython 3.13.3
python 2.py 3262ms 188ms 8.9MB 3250ms 0ms cpython 3.13.3