All nbody problem benchmarks

Current benchmark data was generated on Fri Jul 01 2022, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz (Model 85)

* -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 229ms 8.7ms 1.0MB 217ms 0ms g++ 12.1.0
rust 4-i.rs 255ms 1.5ms 0.6MB 243ms 0ms rustc 1.62.0
cpp 0-i.cpp 260ms 1.2ms 1.1MB 250ms 0ms clang++ 11.0.0
zig 2.zig 321ms 15ms 0.0MB 310ms 0ms zig 0.10.0-dev.2820+48fd92365
rust 7-i.rs 352ms 4.8ms 1.9MB 337ms 0ms rustc 1.62.0
rust 3.rs 375ms 5.5ms 0.6MB 363ms 0ms rustc 1.64.0-nightly
c 8-i.c 392ms 2.6ms 1.0MB 373ms 0ms clang 11.0.0
c 5.c 407ms 2.7ms 1.0MB 393ms 0ms gcc 12.1.0
c 8-i.c 409ms 2.7ms 1.0MB 393ms 0ms gcc 12.1.0
c 8-i.c 411ms 0.9ms 0.6MB 400ms 0ms zigcc 0.10.0-dev.2820+48fd92365
cpp 1.cpp 436ms 4.6ms 1.0MB 420ms 0ms g++ 12.1.0
c 5.c 439ms 4.8ms 1.1MB 423ms 0ms clang 11.0.0
rust 2.rs 447ms 21ms 0.6MB 433ms 0ms rustc 1.62.0
zig 1.zig 469ms 4.9ms 0.0MB 457ms 0ms zig 0.10.0-dev.2820+48fd92365
cpp 1.cpp 494ms 6.6ms 1.1MB 480ms 0ms clang++ 11.0.0
chapel 2.chpl 496ms 3.6ms 32.4MB 477ms 10ms chpl 1.27.0
rust 1.rs 497ms 3.4ms 2.0MB 483ms 0ms rustc 1.62.0
c 5.c 517ms 1.4ms 0.6MB 507ms 0ms zigcc 0.10.0-dev.2820+48fd92365
nim 2.nim 522ms 2.6ms 0.9MB 510ms 0ms nim/clang 1.6.6
csharp 9.cs 528ms 5.3ms 29.2MB 490ms 7ms dotnet 6.0.301
nim 2.nim 539ms 7.2ms 1.0MB 527ms 0ms nim 1.6.6
swift 7.swift 548ms 3.7ms 5.2MB 540ms 0ms swift 5.6.2
c 2.c 553ms 1.9ms 1.6MB 533ms 0ms zigcc 0.10.0-dev.2820+48fd92365
d 1.d 565ms 2.1ms 1.2MB 550ms 0ms ldc2 1.29.0
c 2.c 568ms 5.2ms 1.1MB 550ms 0ms clang 11.0.0
c 2.c 580ms 4.0ms 1.0MB 573ms 0ms gcc 12.1.0
d 2.d 595ms 3.2ms 1.2MB 583ms 0ms ldc2 1.29.0
go 1.go 625ms 9.4ms 2.8MB 613ms 0ms go 1.18.3
wasm 1.rs 665ms 6.0ms 4.7MB 653ms 0ms wasmer/llvm 2.3.0
ocaml 1.ml 669ms 1.2ms 2.6MB 657ms 0ms ocaml 4.14.0
wasm 1.rs 693ms 7.8ms 10.4MB 680ms 0ms wasmtime 0.38.1
crystal 1.cr 726ms 6.4ms 4.9MB 710ms 0ms crystal 1.4.1
csharp 8.cs 744ms 2.0ms 29.2MB 707ms 3ms dotnet 6.0.301
dart 3.dart 753ms 2.4ms 11.0MB 740ms 3ms dart/exe 2.17.5
wasm 1.rs 756ms 13ms 5.4MB 743ms 0ms wasmedgec 0.10.0
java 1.java 756ms 8.4ms 38.6MB 780ms 10ms openjdk 18.0.1
crystal 2.cr 764ms 18ms 3.1MB 753ms 0ms crystal 1.4.1
java 1.java 770ms 12ms 42.6MB 790ms 20ms openjdk 19
kotlin 1.kt 780ms 7.5ms 43.0MB 807ms 13ms kotlin/jvm 17.0.2
wasm 1.rs 791ms 3.4ms 47.5MB 817ms 10ms node 16.15.1
kotlin 1n.kt 826ms 20ms 5.2MB 813ms 0ms kotlin/native 1.7.0
java 1.java 833ms 20ms 40.5MB 793ms 73ms openjdk/zgc 18.0.1
go 1.go 860ms 3.0ms 0.0MB 847ms 0ms tinygo 0.23.0
julia 7.jl 907ms 1.9ms 223.4MB 847ms 170ms julia 1.7.3
javascript 6.js 920ms 17ms 46.3MB 903ms 3ms node 18.4.0
typescript 6.ts 938ms 22ms 36.4MB 933ms 0ms deno 1.23.2
wasm 2.rs 996ms 12ms 5.3MB 980ms 0ms wasmedgec 0.10.0
wasm 2.rs 1005ms 2.7ms 4.5MB 990ms 0ms wasmer/llvm 2.3.0
java 1.java 1006ms 4.3ms 81.6MB 723ms 33ms graal/jvm 17.0.3
wasm 2.rs 1016ms 7.4ms 9.3MB 997ms 0ms wasmtime 0.38.1
wasm 2.rs 1094ms 10ms 47.7MB 1120ms 10ms node 16.15.1
v 1.v 1224ms 1.8ms 2.4MB 1213ms 0ms v/clang+gc 0.3.0
v 1.v 1248ms 40ms 2.4MB 1237ms 0ms v/clang 0.3.0
haxe 2.hx 1338ms 16ms 2.5MB 1327ms 0ms haxe/hl/c 4.2.4
lua 4.lua 1354ms 15ms 1.0MB 1343ms 0ms luajit 2.1.0-beta3
d 1.d 1519ms 17ms 1.9MB 1500ms 0ms dmd 2.100.0
csharp 8.cs 1586ms 12ms 25.0MB 1563ms 7ms mono 6.12.0
haxe 1.hx 1784ms 37ms 2.6MB 1770ms 0ms haxe/hl/c 4.2.4
ruby 2.rb 1848ms 68ms 303.0MB 2323ms 130ms truffleruby 22.1.0
java 2.java 2375ms 10ms 537.7MB 2387ms 170ms openjdk 18.0.1
java 2.java 2418ms 60ms 557.5MB 2433ms 173ms openjdk 19
python 2.py 2587ms 22ms 74.2MB 2543ms 23ms pypy 3.8.13
odin 1.odin 2628ms 30ms 0.9MB 2613ms 0ms odin 2022
haxe 3.hx 2667ms 9.8ms 27.6MB 3237ms 47ms haxe/cpp 4.2.4
haxe 2.hx 3143ms 96ms 3.7MB 3133ms 0ms haxe/hl/jit 1.12.0
haxe 1.hx 3257ms 40ms 3.3MB 3243ms 0ms haxe/hl/jit 1.12.0
d 2.d 3556ms 23ms 2.0MB 3543ms 0ms dmd 2.100.0
java 2.java 3770ms 34ms 1620.7MB 2717ms 1297ms openjdk/zgc 18.0.1
haxe 1.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/cpp 4.2.4
haxe 2.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/cpp 4.2.4
haxe 3.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/hl/c 4.2.4
haxe 3.hx timeout 0.0ms 0.0MB 0ms 0ms haxe/hl/jit 1.12.0
lua 4.lua timeout 0.0ms 0.0MB 0ms 0ms lua 5.4.4
perl 2.pl timeout 0.0ms 0.0MB 0ms 0ms perl 5.36.0
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.5
python 2.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.5
python 1.py timeout 0.0ms 0.0MB 0ms 0ms pypy 3.8.13
python 1.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12
python 2.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12
ruby 2.rb timeout 0.0ms 0.0MB 0ms 0ms ruby 3.1.2
ruby 2.rb timeout 0.0ms 0.0MB 0ms 0ms ruby/yjit 3.1.2

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
cpp 0-i.cpp 25ms 0.5ms 1.0MB 17ms 0ms g++ 12.1.0
rust 4-i.rs 29ms 1.4ms 0.6MB 20ms 0ms rustc 1.62.0
cpp 0-i.cpp 30ms 0.9ms 1.1MB 17ms 0ms clang++ 11.0.0
zig 2.zig 34ms 1.8ms 0.0MB 20ms 0ms zig 0.10.0-dev.2820+48fd92365
rust 7-i.rs 38ms 1.7ms 0.6MB 23ms 0ms rustc 1.62.0
rust 3.rs 41ms 1.1ms 0.6MB 23ms 0ms rustc 1.64.0-nightly
c 8-i.c 44ms 0.1ms 0.6MB 33ms 0ms zigcc 0.10.0-dev.2820+48fd92365
c 8-i.c 44ms 0.8ms 1.0MB 33ms 0ms gcc 12.1.0
c 5.c 45ms 1.4ms 1.0MB 30ms 0ms gcc 12.1.0
c 8-i.c 46ms 2.2ms 1.1MB 30ms 0ms clang 11.0.0
cpp 1.cpp 47ms 0.6ms 0.9MB 40ms 0ms g++ 12.1.0
zig 1.zig 49ms 0.5ms 0.0MB 40ms 0ms zig 0.10.0-dev.2820+48fd92365
rust 2.rs 50ms 2.8ms 0.6MB 40ms 0ms rustc 1.62.0
c 5.c 52ms 7.8ms 1.1MB 40ms 0ms clang 11.0.0
rust 1.rs 55ms 3.7ms 0.6MB 43ms 0ms rustc 1.62.0
cpp 1.cpp 55ms 3.5ms 1.1MB 43ms 0ms clang++ 11.0.0
c 5.c 56ms 0.4ms 0.6MB 47ms 0ms zigcc 0.10.0-dev.2820+48fd92365
nim 2.nim 57ms 1.9ms 0.9MB 47ms 0ms nim 1.6.6
c 2.c 58ms 1.0ms 0.6MB 50ms 0ms zigcc 0.10.0-dev.2820+48fd92365
swift 7.swift 59ms 0.8ms 5.2MB 50ms 0ms swift 5.6.2
d 1.d 61ms 0.8ms 1.2MB 47ms 0ms ldc2 1.29.0
nim 2.nim 62ms 2.6ms 1.0MB 50ms 0ms nim/clang 1.6.6
c 2.c 63ms 3.1ms 1.1MB 50ms 0ms clang 11.0.0
c 2.c 63ms 0.8ms 0.9MB 50ms 0ms gcc 12.1.0
d 2.d 63ms 0.5ms 1.2MB 50ms 0ms ldc2 1.29.0
go 1.go 67ms 2.1ms 2.8MB 53ms 0ms go 1.18.3
ocaml 1.ml 70ms 0.6ms 2.6MB 60ms 0ms ocaml 4.14.0
chapel 2.chpl 71ms 2.0ms 32.4MB 50ms 3ms chpl 1.27.0
wasm 1.rs 74ms 4.5ms 4.7MB 60ms 0ms wasmer/llvm 2.3.0
crystal 1.cr 76ms 0.3ms 5.0MB 67ms 0ms crystal 1.4.1
wasm 1.rs 78ms 0.4ms 5.3MB 67ms 0ms wasmedgec 0.10.0
wasm 1.rs 78ms 2.2ms 9.2MB 70ms 0ms wasmtime 0.38.1
crystal 2.cr 83ms 1.9ms 5.1MB 70ms 0ms crystal 1.4.1
dart 3.dart 85ms 1.3ms 11.0MB 70ms 0ms dart/exe 2.17.5
kotlin 1n.kt 85ms 1.7ms 1.2MB 73ms 0ms kotlin/native 1.7.0
go 1.go 93ms 2.7ms 2.0MB 83ms 0ms tinygo 0.23.0
wasm 2.rs 104ms 1.2ms 5.2MB 93ms 0ms wasmedgec 0.10.0
wasm 2.rs 107ms 0.8ms 4.6MB 100ms 0ms wasmer/llvm 2.3.0
wasm 2.rs 110ms 0.9ms 10.5MB 100ms 0ms wasmtime 0.38.1
csharp 9.cs 111ms 2.7ms 27.2MB 73ms 7ms dotnet 6.0.301
v 1.v 124ms 0.2ms 2.3MB 117ms 0ms v/clang 0.3.0
typescript 6.ts 128ms 1.7ms 35.5MB 120ms 3ms deno 1.23.2
v 1.v 129ms 2.7ms 2.3MB 120ms 0ms v/clang+gc 0.3.0
csharp 8.cs 136ms 4.8ms 29.1MB 93ms 13ms dotnet 6.0.301
haxe 2.hx 139ms 2.9ms 2.6MB 127ms 0ms haxe/hl/c 4.2.4
lua 4.lua 141ms 2.3ms 2.4MB 130ms 0ms luajit 2.1.0-beta3
d 1.d 155ms 1.0ms 2.0MB 140ms 0ms dmd 2.100.0
javascript 6.js 165ms 2.0ms 46.4MB 147ms 7ms node 18.4.0
kotlin 1.kt 168ms 3.4ms 43.0MB 180ms 23ms kotlin/jvm 17.0.2
java 1.java 179ms 11ms 38.7MB 190ms 20ms openjdk 18.0.1
haxe 1.hx 181ms 3.8ms 2.6MB 170ms 0ms haxe/hl/c 4.2.4
java 1.java 184ms 17ms 42.2MB 213ms 10ms openjdk 19
wasm 1.rs 187ms 2.6ms 48.1MB 213ms 10ms node 16.15.1
csharp 8.cs 195ms 2.0ms 25.1MB 170ms 7ms mono 6.12.0
wasm 2.rs 226ms 5.4ms 47.5MB 250ms 10ms node 16.15.1
java 1.java 242ms 2.8ms 40.2MB 203ms 70ms openjdk/zgc 18.0.1
odin 1.odin 267ms 2.9ms 0.8MB 250ms 0ms odin 2022
haxe 3.hx 290ms 4.1ms 27.6MB 323ms 10ms haxe/cpp 4.2.4
haxe 2.hx 313ms 8.8ms 3.3MB 300ms 0ms haxe/hl/jit 1.12.0
haxe 1.hx 332ms 12ms 3.3MB 320ms 0ms haxe/hl/jit 1.12.0
python 2.py 335ms 2.1ms 73.8MB 297ms 23ms pypy 3.8.13
d 2.d 362ms 5.2ms 1.9MB 350ms 0ms dmd 2.100.0
java 1.java 489ms 1.3ms 80.5MB 200ms 30ms graal/jvm 17.0.3
java 2.java 498ms 8.8ms 314.2MB 573ms 90ms openjdk 18.0.1
java 2.java 510ms 9.5ms 341.4MB 580ms 107ms openjdk 19
julia 7.jl 562ms 1.2ms 221.3MB 520ms 150ms julia 1.7.3
ruby 2-m.rb 649ms 21ms 296.6MB 1040ms 123ms truffleruby 22.1.0
python 1.py 692ms 4.8ms 73.7MB 653ms 23ms pypy 3.8.13
java 2.java 891ms 57ms 500.0MB 667ms 410ms openjdk/zgc 18.0.1
haxe 3.hx 939ms 18ms 3.1MB 853ms 67ms haxe/hl/c 4.2.4
haxe 2.hx 1032ms 11ms 4.4MB 1017ms 0ms haxe/cpp 4.2.4
haxe 3.hx 1108ms 13ms 3.8MB 1033ms 53ms haxe/hl/jit 1.12.0
haxe 1.hx 1326ms 13ms 3.2MB 1313ms 0ms haxe/cpp 4.2.4
python 1.py 1416ms 41ms 7.2MB 1397ms 0ms pyston 3.8.12
lua 4.lua 1791ms 31ms 1.1MB 1777ms 0ms lua 5.4.4
python 2.py 1953ms 17ms 8.1MB 1940ms 0ms pyston 3.8.12
ruby 2.rb 2927ms 33ms 286.8MB 2737ms 177ms ruby/yjit 3.1.2
perl 2.pl 3893ms 4.5ms 6.4MB 3880ms 0ms perl 5.36.0
ruby 2.rb 3978ms 23ms 30.0MB 3947ms 17ms ruby 3.1.2
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.5
python 2.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.5