[intrinsics] performance improvements for the intrinsified version of Objects::hash
Vicente Romero
vicente.romero at oracle.com
Wed Feb 27 23:57:39 UTC 2019
On 2/27/19 3:24 PM, Alex Buckley wrote:
> On 2/26/2019 5:49 PM, Vicente Romero wrote:
>> In the last performance measurement we found a noticeable
>> degradation in performance for large number of arguments (~100), even
>> for primitive types. Patch [1] improves the performance for both
>> primitive and reference types with the difference that now the
>> performance is much better than vanilla JDK13 for primitive types but it
>> is still worst than vanilla for reference types. Although we are in
>> better shape now compared to the state as of 02/22. Keep tuned :)
>
> Previous intrinsification effort, relative to vanilla JDK 13:
>
> Intrinsified Vanilla Speedup
> testHash1IntVariable 42564 42799 1x
> testHash2IntVariables 41573 9019 5x
> testHash100IntVariables 4 27 0.15x
>
> New intrinsification effort, relative to vanilla JDK 13:
>
> Intrinsified Vanilla Speedup
> testHash1IntVariable 41149 42799 1x
> testHash2IntVariables 19075 9019 2x
> testHash100IntVariables 697 27 26x
>
> I note that the speedup of the 2IntVariables case is cut from 5x to 2x.
right I was also surprised by that difference, I will rerun the
experiments to see if this result is consistent.
> That seems like quite a penalty for speeding up the 100IntVariables
> case (admittedly by a lot). But maybe what's happening is that the
> speedup improves as more variables are hashed. I wonder if it's fair
> to say for Objects::hash that vanilla invocation has a high fixed cost
> (box box box) and low variable costs (but who cares, because they're
> overwhelmed by the fixed cost) ... while intrinsified invocation has a
> low fixed cost (just run the BSM) but higher variable costs -- you pay
> for the hashing you get.
right I agree
>
>
> Alex
Vicente
More information about the amber-dev
mailing list