Pony VS Nim benchmarks

Current benchmark data was generated on Fri May 20 2022, 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.)

binarytrees

Input: 18

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
pony 1.pony 1898ms 22ms 2224.4MB 1343ms 597ms ponyc 0.50.0
nim 2.nim 3400ms 65ms 34.4MB 3377ms 7ms nim/clang 1.6.6
nim 2.nim 3513ms 2.5ms 34.5MB 3490ms 7ms nim 1.6.6

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
pony 1.pony 150ms 1.4ms 214.4MB 123ms 37ms ponyc 0.50.0
nim 2.nim 320ms 4.9ms 5.7MB 310ms 0ms nim/clang 1.6.6
nim 2.nim 332ms 2.4ms 5.4MB 320ms 0ms nim 1.6.6

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 1.7ms 0.5ms 0.7MB 0ms 0ms nim 1.6.6
nim 1.nim 1.8ms 0.5ms 1.0MB 0ms 0ms nim/clang 1.6.6
pony 1.pony 4.5ms 0.4ms 8.4MB 0ms 0ms ponyc 0.50.0

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 147ms 0.8ms 1.0MB 140ms 0ms nim/clang 1.6.6
nim 2.nim 154ms 0.4ms 0.7MB 143ms 0ms nim 1.6.6
nim 1.nim timeout 0.0ms 0.0MB 0ms 0ms nim 1.6.6
nim 1.nim timeout 0.0ms 0.0MB 0ms 0ms nim/clang 1.6.6
pony 1.pony timeout 0.0ms 0.0MB 0ms 0ms ponyc 0.50.0

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 436ms 4.3ms 1.0MB 427ms 0ms nim/clang 1.6.6
nim 2.nim 458ms 2.1ms 0.7MB 447ms 0ms nim 1.6.6
nim 1.nim timeout 0.0ms 0.0MB 0ms 0ms nim 1.6.6
nim 1.nim timeout 0.0ms 0.0MB 0ms 0ms nim/clang 1.6.6
pony 1.pony timeout 0.0ms 0.0MB 0ms 0ms ponyc 0.50.0

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 64ms 1.0ms 1.0MB 53ms 0ms nim/clang 1.6.6
nim 2.nim 67ms 0.4ms 0.7MB 60ms 0ms nim 1.6.6
nim 1.nim 421ms 0.9ms 1.0MB 410ms 0ms nim/clang 1.6.6
nim 1.nim 466ms 4.2ms 0.7MB 457ms 0ms nim 1.6.6
pony 1.pony 2666ms 0.5ms 36.7MB 2783ms 13ms ponyc 0.50.0

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 405ms 0.5ms 1.0MB 390ms 0ms nim/clang 1.6.6
pony 1.pony 427ms 1.0ms 6.6MB 423ms 3ms ponyc 0.50.0
nim 2.nim 429ms 1.0ms 1.0MB 420ms 0ms nim 1.6.6

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 43ms 0.1ms 1.0MB 33ms 0ms nim/clang 1.6.6
nim 2.nim 45ms 0.9ms 1.0MB 40ms 0ms nim 1.6.6
pony 1.pony 48ms 3.2ms 2.5MB 40ms 0ms ponyc 0.50.0