Hack VS Rust 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
rust 4.rs 1628ms 114ms 33.8MB 1600ms 10ms rustc 1.61.0
rust 5.rs 1902ms 27ms 33.9MB 1867ms 17ms rustc 1.61.0
rust 3.rs 1939ms 119ms 49.8MB 1910ms 13ms rustc 1.61.0
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
rust 4.rs 138ms 1.4ms 5.7MB 120ms 0ms rustc 1.61.0
rust 3.rs 166ms 0.5ms 7.7MB 153ms 0ms rustc 1.61.0
rust 5.rs 168ms 1.0ms 5.7MB 160ms 0ms rustc 1.61.0
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
rust 3-m.rs 915ms 27ms 6.3MB 1760ms 17ms rustc 1.61.0
rust 5-m.rs 1033ms 130ms 5.7MB 1983ms 30ms rustc 1.61.0
rust 3.rs 1831ms 4.5ms 6.5MB 1777ms 37ms rustc 1.61.0
hacklang 1.hack 2000ms 3.5ms 175.6MB 1940ms 43ms hhvm 4.160.0
rust 4.rs 3182ms 1.1ms 4.5MB 3170ms 0ms rustc 1.61.0
rust 1-m.rs 3399ms 14ms 5.8MB 6590ms 83ms rustc 1.61.0

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 3-m.rs 85ms 15ms 3.0MB 137ms 7ms rustc 1.61.0
rust 3.rs 113ms 0.3ms 3.1MB 100ms 0ms rustc 1.61.0
rust 5-m.rs 120ms 13ms 3.2MB 200ms 0ms rustc 1.61.0
rust 4.rs 208ms 0.2ms 2.7MB 200ms 0ms rustc 1.61.0
rust 1-m.rs 234ms 2.8ms 2.8MB 427ms 7ms rustc 1.61.0
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
rust 1.rs 2.2ms 0.6ms 2.0MB 0ms 0ms rustc 1.63.0
rust 1.rs 2.4ms 0.5ms 0.6MB 0ms 0ms rustc 1.61.0
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
rust 1.rs 817ms 1.1ms 33.8MB 787ms 10ms rustc 1.61.0
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
rust 1.rs 167ms 1.9ms 9.9MB 153ms 0ms rustc 1.61.0
hacklang 1.hack 1682ms 3.1ms 191.5MB 1593ms 70ms hhvm 4.160.0