Hack VS Python benchmarks

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

binarytrees

Input: 18

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 1831ms 34ms 220.3MB 1667ms 147ms pypy 3.8.13
hacklang 1.hack timeout 0.0ms 0.0MB 0ms 0ms hhvm 4.160.0
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.4
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 140ms 3.4ms 78.6MB 107ms 20ms pypy 3.8.13
python 1.py 682ms 3.3ms 12.4MB 657ms 7ms pyston 3.8.12
hacklang 1.hack 1353ms 1.7ms 187.1MB 1293ms 43ms hhvm 4.160.0
python 1.py 1619ms 7.5ms 11.8MB 1603ms 0ms cpython 3.10.4

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 1538ms 8.5ms 221.3MB 1423ms 100ms pypy 3.8.13
hacklang 1.hack 2000ms 3.5ms 175.6MB 1940ms 43ms hhvm 4.160.0
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.4
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 312ms 8.1ms 90.4MB 270ms 23ms pypy 3.8.13
python 1.py 864ms 4.1ms 17.2MB 843ms 0ms pyston 3.8.12
python 1.py 910ms 2.7ms 17.0MB 887ms 7ms cpython 3.10.4
hacklang 1.hack 961ms 3.5ms 176.7MB 897ms 47ms hhvm 4.160.0

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 14ms 1.8ms 7.6MB 10ms 0ms pyston 3.8.12
python 1.py 16ms 2.8ms 7.3MB 10ms 0ms cpython 3.10.4
python 1.py 37ms 1.1ms 54.6MB 12ms 10ms pypy 3.8.13
hacklang 1.hack 770ms 2.1ms 169.6MB 708ms 50ms hhvm 4.160.0

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
python 1.py 2988ms 32ms 233.4MB 2767ms 203ms pypy 3.8.13
hacklang 1.hack 4945ms 12ms 234.7MB 4863ms 67ms hhvm 4.160.0
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.4
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 443ms 13ms 151.0MB 363ms 60ms pypy 3.8.13
hacklang 1.hack 1682ms 3.1ms 191.5MB 1593ms 70ms hhvm 4.160.0
python 1.py timeout 0.0ms 0.0MB 0ms 0ms cpython 3.10.4
python 1.py timeout 0.0ms 0.0MB 0ms 0ms pyston 3.8.12