AndrasKovacs / normalization-bench

Lambda normalization and conversion checking benchmarks for various implementations
MIT License
55 stars 6 forks source link

Suspicious average time for OCaml HOAS Nat 10M normalization #10

Closed hirrolot closed 11 months ago

hirrolot commented 1 year ago

I have re-run the OCaml HOAS benchmark and obtained the following numbers:

Show the stats ``` Nat 5M conversion Iterations: 5 true true true true true Average time: 0.401441s Nat 5M normalization Iterations: 5 true true true true true Average time: 2.850329s Nat 10M conversion Iterations: 5 true true true true true Average time: 0.779622s Nat 10M normalization Iterations: 5 true true true true true Average time: 10.962495s Tree 2M conversion Iterations: 5 true true true true true Average time: 0.049158s Tree 2M normalization Iterations: 5 true true true true true Average time: 0.281091s Tree 4M conversion Iterations: 5 true true true true true Average time: 0.081503s Tree 4M normalization Iterations: 5 true true true true true Average time: 0.548169s Tree 8M conversion Iterations: 5 true true true true true Average time: 0.160363s Tree 8M normalization Iterations: 5 true true true true true Average time: 1.153197s ```

The suspicious line is Average time: 10.962495s. From the README.md stats I see that it's 965 milliseconds on your machine, which is a huge difference.

I've compiled my code with -O3 and my compiler version is 5.0.0 (build with Flambda).

What are your thoughts on this? Does this particular test really take 965 milliseconds on your machine?

AndrasKovacs commented 1 year ago

Try to run it with s=10000000 in OCAMLRUNPARAM, as in the README. That gets me 1.1s for that on ocamlopt-5.0.0 without flambda on my current laptop, not far from the old 965 ms.

hirrolot commented 11 months ago

Indeed -- with OCAMLRUNPARAM set to s=10000000 it worked much faster. Probably an OCaml implementation peculiarity or something.