Hack VS Python benchmarks

Current benchmark data was generated on Mon Oct 03 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
python 1.py 1472ms 22ms 274.2MB 1347ms 113ms pypy 3.8.13
hacklang 1.hack timeout 0.0ms 0.0MB 0ms 0ms hhvm 4.169.0
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.7
python 1.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 126ms 20ms 83.2MB 90ms 13ms pypy 3.8.13
python 1.py 607ms 2.1ms 11.9MB 577ms 7ms pyston 3.8.12
python 1.py 1507ms 5.3ms 11.9MB 1493ms 0ms cpython 3.10.7
hacklang 1.hack 1624ms 11ms 190.8MB 1550ms 40ms hhvm 4.169.0

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 1089ms 26ms 197.1MB 1007ms 63ms pypy 3.8.13
hacklang 1.hack 1966ms 12ms 176.4MB 1900ms 37ms hhvm 4.169.0
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.7
python 1.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 276ms 9.7ms 95.5MB 233ms 20ms pypy 3.8.13
python 1.py 936ms 4.7ms 16.9MB 913ms 3ms pyston 3.8.12
hacklang 1.hack 962ms 4.6ms 173.3MB 893ms 37ms hhvm 4.169.0
python 1.py 989ms 23ms 17.1MB 967ms 0ms cpython 3.10.7

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 14ms 0.8ms 7.3MB 10ms 0ms pyston 3.8.12
python 1.py 14ms 0.6ms 7.6MB 10ms 0ms cpython 3.10.7
python 1.py 32ms 0.6ms 54.9MB 16ms 2ms pypy 3.8.13
hacklang 1.hack 775ms 1.9ms 173.0MB 712ms 38ms hhvm 4.169.0

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 2242ms 17ms 293.8MB 2047ms 177ms pypy 3.8.13
hacklang 1.hack timeout 0.0ms 0.0MB 0ms 0ms hhvm 4.169.0
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.7
python 1.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 333ms 6.8ms 145.2MB 270ms 43ms pypy 3.8.13
hacklang 1.hack 1794ms 4.0ms 202.3MB 1743ms 27ms hhvm 4.169.0
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.7
python 1.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12