Hack VS Crystal 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
crystal 1.cr 1959ms 5.7ms 64.5MB 2317ms 27ms crystal 1.4.1
hacklang 1.hack timeout 0.0ms 0.0MB 0ms 0ms hhvm 4.160.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 143ms 1.4ms 12.9MB 150ms 0ms crystal 1.4.1
hacklang 1.hack 1353ms 1.7ms 187.1MB 1293ms 43ms hhvm 4.160.0

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
hacklang 1.hack 2000ms 3.5ms 175.6MB 1940ms 43ms hhvm 4.160.0
crystal 1.cr 2268ms 8.4ms 22.3MB 2203ms 47ms crystal 1.4.1

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 126ms 3.3ms 7.6MB 110ms 3ms crystal 1.4.1
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
crystal 1.cr 3.8ms 0.8ms 2.8MB 0ms 0ms crystal 1.4.1
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
crystal 1.cr 1471ms 5.0ms 64.3MB 1713ms 20ms crystal 1.4.1
hacklang 1.hack 4945ms 12ms 234.7MB 4863ms 67ms hhvm 4.160.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
crystal 1.cr 246ms 2.3ms 17.7MB 260ms 13ms crystal 1.4.1
hacklang 1.hack 1682ms 3.1ms 191.5MB 1593ms 70ms hhvm 4.160.0