Valhalla/MVT microbenchmarks (first benchmarks and first results)
Roland Westrelin
rwestrel at redhat.com
Thu Jul 27 12:27:28 UTC 2017
> The only exception seems to be those multIJKTotalLoop/multIKJTotalLoop
> benchmarks, in which, as you point out, something is preventing full
> MH compilation. I'm sure our C2 gurus will look into that soon.
Those benchmarks apparently need a warmup that's a lot longer. I see
performance improved dramatically at warmup iteration 83 with
MH_Derived.multIJKTotalLoop.
Compilation heuristics work by counting the number of invocations of a
method and adding the number of times a backbranch is taken in a
method. Once that value crosses a threshold compilation is triggered. It
looks like it doesn't work well with the loop combinators. Maybe the
actual loop is in some method that gets compiled early but for maximum
performance we need some caller of that method to be compiled so method
handles are known constant and that only happens much later.
Roland.
More information about the valhalla-dev
mailing list