Experiment using inline class paired with interface
Brian Goetz
brian.goetz at oracle.com
Wed Jan 8 19:25:59 UTC 2020
Some of you might recall, at the OCO keynote I showed an example of
speedup using inline classes in a Mandelbrot set viewer, which compared
the obvious Complex class with the obvious inline equivalent. While
there is little heap density/flatness benefit in this example, it does
expose a lot of opportunity for better EA. The one bit change (identity
to inline) yielded a difference in effective frame rate from 16fps to
47fps.
Mikael modified this demo to use a hand-written pair of types, an
interface (IComplex) with one implementation, as a way of estimating
what sort of performance penalties we might pay when using a reference
wrapper (Foo.ref) across API calls. The results were encouraging; frame
rates were about the same as with the single inline class (though
allocation went up a tad.) But this seems a useful PoC that we are not
giving up too much by the inline-interface pair approach.
More information about the valhalla-dev
mailing list