All merkletrees problem benchmarks

Current benchmark data was generated on Mon Feb 06 2023, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8272CL 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.)

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 1.kt 514ms 21ms 361.1MB 490ms 93ms kotlin/jvm 17.0.2
dart 1.dart 533ms 7.8ms 68.6MB 510ms 20ms dart/exe 2.19.1
java 1.java 578ms 25ms 374.6MB 570ms 107ms openjdk 20
java 1.java 599ms 5.4ms 373.3MB 597ms 100ms openjdk 19
java 1.java 607ms 1.8ms 351.7MB 767ms 110ms graal/jvm 17.0.6
dart 1.dart 612ms 5.3ms 70.8MB 590ms 27ms dart/exe 3.0.0-187.0.dev
typescript 1.ts 728ms 1.1ms 89.4MB 737ms 30ms deno 1.30.2
javascript 1.js 829ms 3.5ms 151.0MB 913ms 43ms bun 0.5.5
csharp 2.cs 922ms 6.2ms 378.5MB 783ms 183ms dotnet/aot 7.0.102
rust 1.rs 949ms 11ms 34.0MB 920ms 13ms rustc 1.67.0
javascript 1.js 958ms 10ms 122.6MB 987ms 53ms node 19.6.0
csharp 1.cs 967ms 1.1ms 313.5MB 853ms 137ms dotnet/aot 7.0.102
java 1.java 1062ms 7.0ms 737.3MB 673ms 530ms openjdk/zgc 19
nim 1.nim 1081ms 3.0ms 34.6MB 1060ms 3ms nim/clang 1.6.10
nim 1.nim 1089ms 2.4ms 34.6MB 1063ms 7ms nim 1.6.10
csharp 2.cs 1115ms 10ms 492.0MB 890ms 233ms dotnet 7.0.102
csharp 1.cs 1151ms 7.1ms 499.3MB 970ms 213ms dotnet 7.0.102
wasm 1.rs 1256ms 2.7ms 38.6MB 1230ms 10ms wasmedgec 0.11.2
zig 1.zig 1311ms 114ms 41.1MB 1280ms 13ms zig 0.11.0-dev.1577+11cc1c16f
haxe 1.hx 1315ms 13ms 97.2MB 1570ms 50ms haxe/cpp 4.2.5
wasm 1.rs 1440ms 29ms 34.9MB 1413ms 10ms wasmtime 5.0.0
wasm 1.rs 1447ms 17ms 66.9MB 1437ms 17ms node 16.19.0
d 1.d 1591ms 1.6ms 74.8MB 1653ms 17ms ldc2 1.30.0
crystal 1.cr 1618ms 9.5ms 64.2MB 1590ms 13ms crystal 1.7.2
ocaml 1.ml 1777ms 7.9ms 69.3MB 1723ms 40ms ocaml 5.0.0
csharp 1.cs 1944ms 32ms 143.5MB 2473ms 120ms mono 6.12.0
go 1.go 2223ms 27ms 40.1MB 3083ms 63ms go 1.19.5
go 2.go 2469ms 6.5ms 41.8MB 3500ms 63ms go 1.19.5
d 1.d 2722ms 3.1ms 154.0MB 3030ms 40ms dmd 2.102.0
python 1.py 2938ms 261ms 230.3MB 2777ms 143ms pypy 3.9.16
kotlin 1-m.kt 3231ms 169ms 138.5MB 4950ms 777ms kotlin/native 1.8.10
ocaml 2.ml 3374ms 15ms 74.1MB 3323ms 33ms ocaml 5.0.0
go 1.go 4230ms 3.2ms 212.7MB 4150ms 60ms tinygo 0.25.0
go 2.go timeout 0.0ms 68.9MB 4973ms 7ms tinygo 0.25.0
haxe 1.hx timeout 0.0ms 32.7MB 4650ms 333ms haxe/hl/c 4.2.5
haxe 1.hx timeout 0.0ms 54.0MB 4590ms 393ms haxe/hl/jit 1.13.0
lua 1.lua timeout 0.0ms 159.1MB 4917ms 63ms lua 5.4.4
lua 1.lua timeout 0.0ms 180.9MB 4890ms 90ms luajit 2.1.0-beta3
php 1.php timeout 0.0ms 112.9MB 4957ms 23ms php 8.2.2
python 1.py timeout 0.0ms 92.9MB 4947ms 33ms cpython 3.11.1
python 1.py timeout 0.0ms 130.2MB 4930ms 50ms pyston 3.8.12
ruby 1.rb timeout 0.0ms 96.5MB 4927ms 57ms ruby 3.2.0
ruby 1.rb timeout 0.0ms 97.1MB 4927ms 53ms ruby/yjit 3.2.0
ruby 1.rb timeout 0.0ms 515.5MB 9077ms 260ms truffleruby 22.3.1

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
dart 1.dart 134ms 3.3ms 48.7MB 103ms 20ms dart/exe 2.19.1
dart 1.dart 145ms 1.2ms 48.7MB 113ms 20ms dart/exe 3.0.0-187.0.dev
typescript 1.ts 187ms 1.6ms 57.3MB 187ms 13ms deno 1.30.2
javascript 1.js 191ms 2.1ms 108.8MB 173ms 17ms bun 0.5.5
rust 1.rs 192ms 1.1ms 9.9MB 180ms 0ms rustc 1.67.0
kotlin 1.kt 203ms 3.9ms 221.1MB 177ms 57ms kotlin/jvm 17.0.2
csharp 2.cs 212ms 5.9ms 138.0MB 163ms 43ms dotnet/aot 7.0.102
zig 1.zig 229ms 0.2ms 10.9MB 213ms 0ms zig 0.11.0-dev.1577+11cc1c16f
nim 1.nim 230ms 0.3ms 9.3MB 217ms 0ms nim 1.6.10
nim 1.nim 230ms 0.9ms 9.5MB 217ms 0ms nim/clang 1.6.10
csharp 1.cs 243ms 2.8ms 148.5MB 183ms 53ms dotnet/aot 7.0.102
haxe 1.hx 253ms 10ms 28.5MB 243ms 23ms haxe/cpp 4.2.5
java 1.java 259ms 11ms 174.3MB 250ms 63ms openjdk 19
java 1.java 264ms 11ms 222.1MB 263ms 60ms openjdk 20
ocaml 1.ml 265ms 3.9ms 25.8MB 240ms 10ms ocaml 5.0.0
wasm 1.rs 267ms 1.2ms 21.9MB 250ms 0ms wasmedgec 0.11.2
javascript 1.js 268ms 2.1ms 90.5MB 250ms 30ms node 19.6.0
crystal 1.cr 288ms 7.9ms 22.2MB 267ms 10ms crystal 1.7.2
java 1-m.java 301ms 2.6ms 279.6MB 410ms 60ms graal/jvm 17.0.6
wasm 1.rs 301ms 1.9ms 17.0MB 287ms 0ms wasmtime 5.0.0
d 1.d 316ms 1.9ms 38.9MB 293ms 10ms ldc2 1.30.0
csharp 1.cs 349ms 6.0ms 71.9MB 327ms 40ms mono 6.12.0
csharp 2.cs 366ms 4.4ms 206.1MB 270ms 80ms dotnet 7.0.102
wasm 1.rs 368ms 1.8ms 49.4MB 363ms 10ms node 16.19.0
csharp 1.cs 409ms 21ms 258.7MB 273ms 97ms dotnet 7.0.102
java 1.java 460ms 1.7ms 307.8MB 270ms 230ms openjdk/zgc 19
go 1.go 474ms 6.1ms 12.5MB 633ms 20ms go 1.19.5
python 1.py 482ms 20ms 149.6MB 410ms 53ms pypy 3.9.16
go 2.go 528ms 6.9ms 13.6MB 730ms 13ms go 1.19.5
d 1.d 560ms 4.4ms 40.4MB 600ms 3ms dmd 2.102.0
ocaml 2.ml 589ms 2.0ms 30.3MB 567ms 7ms ocaml 5.0.0
kotlin 1-m.kt 648ms 0.2ms 38.4MB 1067ms 100ms kotlin/native 1.8.10
go 1.go 732ms 1.3ms 52.2MB 703ms 7ms tinygo 0.25.0
php 1.php 1201ms 7.7ms 66.4MB 1167ms 17ms php 8.2.2
go 2.go 1428ms 1.8ms 38.9MB 1403ms 3ms tinygo 0.25.0
haxe 1.hx 1659ms 4.1ms 10.9MB 1533ms 110ms haxe/hl/c 4.2.5
lua 1.lua 1836ms 89ms 36.3MB 1813ms 3ms luajit 2.1.0-beta3
haxe 1.hx 1917ms 76ms 20.2MB 1800ms 103ms haxe/hl/jit 1.13.0
lua 1.lua 3056ms 30ms 41.6MB 3020ms 17ms lua 5.4.4
ruby 1.rb 3322ms 2877ms 52.8MB 4930ms 40ms ruby 3.2.0
ruby 1-m.rb 3712ms 39ms 590.9MB 6777ms 257ms truffleruby 22.3.1
ruby 1.rb 4121ms 6.3ms 53.6MB 4070ms 30ms ruby/yjit 3.2.0
python 1.py timeout 0.0ms 36.9MB 4967ms 13ms cpython 3.11.1
python 1.py timeout 0.0ms 41.5MB 4963ms 17ms pyston 3.8.12