On Thu, 20 Jul 2023 01:27:41 GMT, Glavo <d...@openjdk.org> wrote:

>> The changes to `Arrays.hashCode(Object[])` in JDK-8312164 caused its 
>> performance  is reduced by about 80%.
>> 
>> This PR reverts this change.
>
>> A similar performance decrease have been discussed here: [#14752 
>> (comment)](https://github.com/openjdk/jdk/pull/14752#discussion_r1250888931)
>> 
>> Can you check whether adding `@ForceInline` on `Objects.equals` help with 
>> JIT? If it helps, then I think adding `@ForceInline` might be a better 
>> solution.
> 
> I added `@ForceInline` on `Objects.hashCode(Object)`, but the JMH results did 
> not change.

@Glavo I have created a test case with polymorphic objects in an array: 
https://github.com/liachmodded/jdk/tree/explore/arrays-hash-poly
Can you see if you can produce the same outcome on your patch, and how the 
existing `Objects.equals` behave on the polymorphicObjects case?


Benchmark               (size)  Mode  Cnt     Score    Error  Units
ArraysHashCode.objects       1  avgt   15     0.770 ±  0.011  ns/op
ArraysHashCode.objects      10  avgt   15     4.704 ±  0.059  ns/op
ArraysHashCode.objects     100  avgt   15    54.610 ±  0.384  ns/op
ArraysHashCode.objects   10000  avgt   15  6053.742 ± 35.244  ns/op



Benchmark                          (size)  Mode  Cnt      Score      Error  
Units
ArraysHashCode.polymorphicObjects       1  avgt   15      0.921 ±    0.069  
ns/op
ArraysHashCode.polymorphicObjects      10  avgt   15     23.322 ±    1.076  
ns/op
ArraysHashCode.polymorphicObjects     100  avgt   15    211.325 ±    2.200  
ns/op
ArraysHashCode.polymorphicObjects   10000  avgt   15  81850.916 ± 2427.661  
ns/op

-------------

PR Comment: https://git.openjdk.org/jdk/pull/14944#issuecomment-1642998263

Reply via email to