All nbody problem benchmarks

Current benchmark data was generated on Thu Jul 13 2023, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz (Model 106)

* -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
cpp 0-i.cpp 225ms 1.3ms 1.0MB 220ms 0ms g++ 11.3.0
cpp 0-i.cpp 253ms 0.7ms 1.5MB 240ms 0ms clang++ 14.0.0
rust 4-i.rs 255ms 0.2ms 1.0MB 247ms 0ms rustc 1.70.0
zig 2.zig 305ms 0.0ms 1.1MB 300ms 0ms zig 0.11.0-dev.3978+711b4e93e
c 2.c 312ms 0.6ms 1.3MB 300ms 0ms gcc 13.1.0
c 5.c 315ms 2.8ms 1.0MB 307ms 0ms zigcc 0.11.0-dev.3978+711b4e93e
c 5.c 320ms 0.8ms 1.3MB 310ms 0ms gcc 13.1.0
c 8-i.c 320ms 0.4ms 1.3MB 310ms 0ms gcc 13.1.0
c 2.c 320ms 0.2ms 1.0MB 310ms 0ms zigcc 0.11.0-dev.3978+711b4e93e
rust 3.rs 321ms 0.4ms 1.0MB 310ms 0ms rustc 1.73.0-nightly
rust 7-i.rs 322ms 0.4ms 1.1MB 310ms 0ms rustc 1.70.0
cpp 1.cpp 327ms 1.0ms 1.4MB 317ms 0ms clang++ 14.0.0
c 5.c 331ms 2.0ms 1.4MB 320ms 0ms clang 14.0.0
rust 2.rs 332ms 2.6ms 1.0MB 323ms 0ms rustc 1.70.0
c 2.c 341ms 0.6ms 1.4MB 327ms 0ms clang 14.0.0
cpp 1.cpp 341ms 0.8ms 1.2MB 327ms 0ms g++ 11.3.0
c 8-i.c 361ms 0.1ms 1.0MB 350ms 0ms zigcc 0.11.0-dev.3978+711b4e93e
chapel 2.chpl 363ms 1.0ms 32.3MB 353ms 3ms chpl 1.31.0
c 8-i.c 367ms 5.2ms 1.4MB 357ms 0ms clang 14.0.0
zig 1.zig 367ms 4.1ms 1.0MB 357ms 0ms zig 0.11.0-dev.3978+711b4e93e
nim 2.nim 382ms 0.6ms 1.3MB 370ms 0ms nim 1.6.14
rust 1.rs 390ms 4.6ms 1.1MB 377ms 0ms rustc 1.70.0
csharp 9.cs 407ms 0.4ms 29.8MB 380ms 0ms dotnet 7.0.306
nim 2.nim 411ms 0.8ms 1.3MB 400ms 0ms nim/clang 1.6.14
d 1.d 413ms 0.6ms 1.5MB 400ms 0ms ldc2 1.32.2
d 2.d 424ms 0.0ms 1.5MB 413ms 0ms ldc2 1.32.2
go 1.go 430ms 0.7ms 0.0MB 420ms 0ms tinygo 0.28.1
swift 7.swift 433ms 0.3ms 5.3MB 420ms 0ms swift 5.8.1
crystal 2.cr 450ms 0.3ms 2.9MB 437ms 0ms crystal 1.9.0
go 1.go 456ms 1.6ms 2.9MB 450ms 0ms go 1.20.6
crystal 1.cr 468ms 29ms 3.0MB 457ms 0ms crystal 1.9.0
ocaml 1.ml 470ms 0.5ms 2.9MB 460ms 0ms ocaml 5.0.0
wasm 1.rs 472ms 2.5ms 16.1MB 463ms 0ms wasmtime 10.0.1
wasm 1.rs 492ms 0.4ms 28.6MB 477ms 0ms wasmedgec 0.13.1
csharp 8.cs 498ms 4.0ms 10.1MB 497ms 0ms dotnet/aot 7.0.306
odin 1-i.odin 508ms 0.6ms 1.3MB 500ms 0ms odin 2023
dart 3.dart 521ms 0.1ms 13.7MB 500ms 0ms dart/exe 3.0.6
kotlin 1n.kt 532ms 5.2ms 1.5MB 517ms 0ms kotlin/native 1.8.21
csharp 8.cs 538ms 1.3ms 25.7MB 503ms 0ms dotnet 7.0.306
java 1.java 546ms 4.8ms 87.4MB 567ms 27ms graal/jvm 17.0.7
java 1.java 568ms 7.8ms 40.5MB 577ms 13ms openjdk 20
java 1.java 569ms 5.5ms 43.6MB 580ms 10ms openjdk 22
kotlin 1.kt 576ms 4.4ms 42.8MB 577ms 17ms kotlin/jvm 17.0.2
typescript 6.ts 595ms 1.1ms 45.0MB 580ms 0ms deno 1.35.1
julia 7.jl 600ms 25ms 223.1MB 523ms 63ms julia/aot 1.9.2
java 1.java 608ms 2.8ms 41.6MB 577ms 60ms openjdk/zgc 20
javascript 6.js 611ms 7.4ms 45.7MB 590ms 17ms node 20.4.0
wasm 2.rs 655ms 4.7ms 27.8MB 633ms 7ms wasmedgec 0.13.1
wasm 2.rs 657ms 1.4ms 16.3MB 643ms 0ms wasmtime 10.0.1
wasm 1.rs 774ms 77ms 48.6MB 760ms 7ms node 18.16.1
v 1.v 874ms 0.8ms 2.3MB 860ms 0ms v/clang+gc 0.4.0
v 1.v 878ms 10.0ms 2.3MB 863ms 0ms v/clang 0.4.0
wasm 2.rs 943ms 2.4ms 49.3MB 930ms 7ms node 18.16.1
haxe 2.hx 1011ms 67ms 2.4MB 997ms 0ms haxe/hl/c 4.2.5
javascript 6.js 1018ms 11ms 74.0MB 1010ms 0ms bun 0.6.14
ruby 2.rb 1022ms 5.5ms 306.4MB 1213ms 87ms truffleruby 22.3.1
csharp 8.cs 1108ms 0.6ms 24.9MB 1093ms 0ms mono 6.12.0
lua 4.lua 1109ms 7.7ms 1.4MB 1097ms 0ms luajit 2.1.0-beta3
haxe 1.hx 1241ms 0.7ms 2.3MB 1227ms 0ms haxe/hl/c 4.2.5
haxe 3.hx 1389ms 23ms 27.6MB 1563ms 23ms haxe/cpp 4.2.5
d 1.d 1542ms 2.9ms 2.8MB 1530ms 0ms dmd 2.104.1
python 2.py 1880ms 4.6ms 77.3MB 1853ms 10ms pypy 3.10.12
java 2.java 1893ms 12ms 514.6MB 1927ms 103ms openjdk 20
java 2.java 1933ms 5.9ms 506.0MB 1947ms 120ms openjdk 22
codon 1.py 1947ms 41ms 7.2MB 1933ms 0ms codon 0.16.2
d 2.d 2291ms 1.1ms 2.9MB 2280ms 0ms dmd 2.104.1
haxe 2.hx 2328ms 47ms 3.2MB 2317ms 0ms haxe/hl/jit 1.13.0
java 2.java 2609ms 2.3ms 1195.5MB 2063ms 730ms openjdk/zgc 20
haxe 1.hx 2627ms 189ms 3.2MB 2613ms 0ms haxe/hl/jit 1.13.0
odin 1.odin 2903ms 22ms 1.2MB 2890ms 0ms odin 2023
python 1.py 3370ms 20ms 76.1MB 3337ms 13ms pypy 3.10.12
haxe 1.hx timeout 0.0ms 3.3MB 4983ms 0ms haxe/cpp 4.2.5
haxe 2.hx timeout 0.0ms 3.2MB 4987ms 0ms haxe/cpp 4.2.5
haxe 3.hx timeout 0.0ms 3.4MB 4513ms 470ms haxe/hl/c 4.2.5
haxe 3.hx timeout 0.0ms 3.7MB 4630ms 350ms haxe/hl/jit 1.13.0
lua 4.lua timeout 0.0ms 1.4MB 4987ms 0ms lua 5.4.4
perl 2.pl timeout 0.0ms 6.2MB 4987ms 0ms perl 5.38.0
python 1.py timeout 0.0ms 8.4MB 4983ms 0ms cpython 3.11.4
python 2.py timeout 0.0ms 8.6MB 4983ms 0ms cpython 3.11.4
python 1.py timeout 0.0ms 8.3MB 4980ms 3ms pyston 3.8.12
python 2.py timeout 0.0ms 7.9MB 4980ms 0ms pyston 3.8.12
ruby 2.rb timeout 0.0ms 32.2MB 4967ms 17ms ruby 3.2.2
ruby 2.rb timeout 0.0ms 32.9MB 4977ms 3ms ruby/yjit 3.2.2

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
cpp 0-i.cpp 25ms 0.4ms 1.0MB 17ms 0ms g++ 11.3.0
rust 4-i.rs 28ms 0.2ms 1.1MB 20ms 0ms rustc 1.70.0
cpp 0-i.cpp 28ms 0.6ms 1.4MB 20ms 0ms clang++ 14.0.0
zig 2.zig 32ms 0.5ms 1.0MB 20ms 0ms zig 0.11.0-dev.3978+711b4e93e
c 5.c 34ms 0.5ms 1.0MB 23ms 0ms zigcc 0.11.0-dev.3978+711b4e93e
c 8-i.c 34ms 0.1ms 1.3MB 30ms 0ms gcc 13.1.0
c 5.c 34ms 0.3ms 1.3MB 27ms 0ms gcc 13.1.0
rust 7-i.rs 34ms 0.2ms 1.1MB 27ms 0ms rustc 1.70.0
c 2.c 35ms 1.7ms 1.3MB 23ms 0ms gcc 13.1.0
c 2.c 35ms 0.1ms 1.0MB 23ms 0ms zigcc 0.11.0-dev.3978+711b4e93e
rust 3.rs 35ms 1.1ms 1.0MB 23ms 0ms rustc 1.73.0-nightly
rust 2.rs 35ms 0.3ms 1.0MB 30ms 0ms rustc 1.70.0
cpp 1.cpp 35ms 0.8ms 1.5MB 25ms 0ms clang++ 14.0.0
c 5.c 36ms 0.5ms 1.4MB 30ms 0ms clang 14.0.0
cpp 1.cpp 37ms 0.6ms 1.3MB 27ms 0ms g++ 11.3.0
c 2.c 37ms 0.3ms 1.4MB 30ms 0ms clang 14.0.0
c 8-i.c 38ms 0.2ms 1.0MB 30ms 0ms zigcc 0.11.0-dev.3978+711b4e93e
zig 1.zig 39ms 0.6ms 1.0MB 30ms 0ms zig 0.11.0-dev.3978+711b4e93e
c 8-i.c 40ms 1.2ms 1.4MB 30ms 0ms clang 14.0.0
nim 2.nim 41ms 0.3ms 1.3MB 30ms 0ms nim 1.6.14
rust 1.rs 41ms 0.6ms 1.1MB 30ms 0ms rustc 1.70.0
nim 2.nim 43ms 0.0ms 1.2MB 30ms 0ms nim/clang 1.6.14
d 1.d 44ms 0.7ms 1.6MB 33ms 0ms ldc2 1.32.2
go 1.go 45ms 0.7ms 0.0MB 37ms 0ms tinygo 0.28.1
d 2.d 45ms 0.3ms 1.5MB 37ms 0ms ldc2 1.32.2
swift 7.swift 46ms 0.3ms 5.3MB 40ms 0ms swift 5.8.1
crystal 2.cr 48ms 0.1ms 2.9MB 40ms 0ms crystal 1.9.0
crystal 1.cr 48ms 0.8ms 3.0MB 40ms 0ms crystal 1.9.0
ocaml 1.ml 50ms 0.6ms 2.9MB 40ms 0ms ocaml 5.0.0
go 1.go 52ms 0.6ms 2.9MB 40ms 0ms go 1.20.6
odin 1-i.odin 54ms 0.4ms 1.2MB 43ms 0ms odin 2023
wasm 1.rs 55ms 1.7ms 16.1MB 43ms 0ms wasmtime 10.0.1
chapel 2.chpl 55ms 1.2ms 32.3MB 47ms 3ms chpl 1.31.0
kotlin 1n.kt 55ms 0.1ms 1.5MB 50ms 0ms kotlin/native 1.8.21
csharp 8.cs 57ms 2.2ms 10.1MB 53ms 0ms dotnet/aot 7.0.306
dart 3.dart 60ms 0.8ms 12.2MB 47ms 0ms dart/exe 3.0.6
wasm 1.rs 60ms 2.1ms 27.3MB 50ms 0ms wasmedgec 0.13.1
wasm 2.rs 75ms 1.6ms 16.0MB 63ms 0ms wasmtime 10.0.1
wasm 2.rs 77ms 1.6ms 28.6MB 63ms 3ms wasmedgec 0.13.1
v 1.v 90ms 1.7ms 2.4MB 80ms 0ms v/clang 0.4.0
v 1.v 96ms 10.0ms 2.2MB 87ms 0ms v/clang+gc 0.4.0
typescript 6.ts 97ms 5.4ms 45.7MB 83ms 10ms deno 1.35.1
haxe 2.hx 100ms 0.8ms 2.3MB 90ms 0ms haxe/hl/c 4.2.5
csharp 9.cs 101ms 3.9ms 29.3MB 70ms 3ms dotnet 7.0.306
javascript 6.js 111ms 1.6ms 45.8MB 90ms 17ms node 20.4.0
lua 4.lua 118ms 7.0ms 1.4MB 110ms 0ms luajit 2.1.0-beta3
wasm 1.rs 119ms 0.8ms 49.5MB 107ms 0ms node 18.16.1
csharp 8.cs 120ms 8.5ms 29.8MB 77ms 3ms dotnet 7.0.306
javascript 6.js 123ms 0.5ms 75.7MB 120ms 7ms bun 0.6.14
haxe 1.hx 128ms 0.8ms 2.3MB 120ms 0ms haxe/hl/c 4.2.5
csharp 8.cs 133ms 3.3ms 24.9MB 120ms 0ms mono 6.12.0
java 1.java 141ms 3.4ms 84.6MB 173ms 13ms graal/jvm 17.0.7
wasm 2.rs 142ms 2.9ms 49.9MB 127ms 3ms node 18.16.1
java 1.java 148ms 3.9ms 40.8MB 160ms 17ms openjdk 20
kotlin 1.kt 148ms 2.5ms 43.4MB 150ms 10ms kotlin/jvm 17.0.2
java 1.java 149ms 5.8ms 41.7MB 163ms 10ms openjdk 22
d 1.d 157ms 0.7ms 2.9MB 147ms 0ms dmd 2.104.1
haxe 3.hx 159ms 13ms 25.7MB 153ms 7ms haxe/cpp 4.2.5
java 1.java 197ms 7.3ms 41.7MB 167ms 57ms openjdk/zgc 20
codon 1.py 198ms 2.4ms 7.3MB 190ms 0ms codon 0.16.2
haxe 2.hx 236ms 1.9ms 3.3MB 223ms 0ms haxe/hl/jit 1.13.0
d 2.d 237ms 6.9ms 2.9MB 220ms 0ms dmd 2.104.1
python 2.py 242ms 1.9ms 77.0MB 217ms 10ms pypy 3.10.12
haxe 1.hx 258ms 2.9ms 3.3MB 250ms 0ms haxe/hl/jit 1.13.0
julia 7.jl 281ms 4.9ms 223.1MB 193ms 73ms julia/aot 1.9.2
odin 1.odin 296ms 10ms 1.2MB 287ms 0ms odin 2023
python 1.py 381ms 1.2ms 76.4MB 360ms 7ms pypy 3.10.12
ruby 2-m.rb 387ms 13ms 323.0MB 587ms 87ms truffleruby 22.3.1
java 2.java 424ms 2.6ms 338.1MB 493ms 60ms openjdk 20
java 2.java 425ms 2.7ms 330.8MB 493ms 67ms openjdk 22
haxe 3.hx 653ms 14ms 3.2MB 577ms 60ms haxe/hl/c 4.2.5
java 2.java 762ms 1.2ms 522.5MB 547ms 360ms openjdk/zgc 20
haxe 3.hx 772ms 1.3ms 3.7MB 697ms 60ms haxe/hl/jit 1.13.0
haxe 2.hx 803ms 1.5ms 3.2MB 790ms 0ms haxe/cpp 4.2.5
haxe 1.hx 1101ms 0.7ms 3.2MB 1087ms 0ms haxe/cpp 4.2.5
python 1.py 1202ms 7.3ms 8.4MB 1190ms 0ms pyston 3.8.12
lua 4.lua 1211ms 12ms 1.4MB 1200ms 0ms lua 5.4.4
python 2.py 1603ms 2.5ms 7.9MB 1590ms 0ms pyston 3.8.12
ruby 2.rb 2106ms 0.9ms 32.9MB 2080ms 10ms ruby/yjit 3.2.2
perl 2.pl 3183ms 17ms 6.2MB 3167ms 0ms perl 5.38.0
ruby 2.rb 3217ms 21ms 32.3MB 3187ms 10ms ruby 3.2.2
python 1.py 3302ms 19ms 8.4MB 3287ms 0ms cpython 3.11.4
python 2.py 3358ms 33ms 8.6MB 3343ms 0ms cpython 3.11.4