-
Enhancement
-
Resolution: Fixed
-
P4
-
None
-
b24
-
generic
`InterfaceCalls.java` makes highly predictable memory accesses, which leads to a gross time underestimate of the case where a megamorphic access is unpredictable.
Here's one example, with and without randomization. The unpredictable megamorphic call takes more than 4* as long as the benchmark.
```
Benchmark (randomized) Mode Cnt Score Error Units
InterfaceCalls.test2ndInt3Types false avgt 4 5.034 ± 0.219 ns/op
InterfaceCalls.test2ndInt3Types true avgt 4 23.407 ± 0.475 ns/op
```
Here's one example, with and without randomization. The unpredictable megamorphic call takes more than 4* as long as the benchmark.
```
Benchmark (randomized) Mode Cnt Score Error Units
InterfaceCalls.test2ndInt3Types false avgt 4 5.034 ± 0.219 ns/op
InterfaceCalls.test2ndInt3Types true avgt 4 23.407 ± 0.475 ns/op
```
- links to
-
Commit(master) openjdk/jdk/78b378ad
-
Review(master) openjdk/jdk/21581