-
Enhancement
-
Resolution: Unresolved
-
P4
-
None
-
None
-
generic
-
generic
1) Create a set of microbenchmarks covering every elementary JVM operation that uses Object Header.
Examples of such operations: virtual method invocation (including cache inline), instanceof, type cast, identity hash code, array store check, synchronization, etc.
2) Extend the Object Headers Microbenchmark Set for "in-progress" projects.
For example, Project Valhalla adds object header checks for acmp/aastore/aaload operations.
Having such a set of microbenchmarks, it would be possible to make performance evaluation, performance analysis, and performance regression tracking for every change/extension in the object header area.
For example, it's known that Compact Object Headers cause -20% performance overhead for virtual method invocation.
The goal is to get a comprehensive picture of Compact Object Headers (Vallhalla, and other projects) performance impact.
Ideally, every object header access should be covered by the Object Headers Microbenchmark Set except GC. It's not a goal to cover GC operations.
Examples of such operations: virtual method invocation (including cache inline), instanceof, type cast, identity hash code, array store check, synchronization, etc.
2) Extend the Object Headers Microbenchmark Set for "in-progress" projects.
For example, Project Valhalla adds object header checks for acmp/aastore/aaload operations.
Having such a set of microbenchmarks, it would be possible to make performance evaluation, performance analysis, and performance regression tracking for every change/extension in the object header area.
For example, it's known that Compact Object Headers cause -20% performance overhead for virtual method invocation.
The goal is to get a comprehensive picture of Compact Object Headers (Vallhalla, and other projects) performance impact.
Ideally, every object header access should be covered by the Object Headers Microbenchmark Set except GC. It's not a goal to cover GC operations.
- relates to
-
JDK-8360700 Implement Compact Object Headers enabled by default
-
- Open
-
-
JDK-8365493 Regression on Pet Clinic app with Compact Object Headers
-
- Open
-
-
JDK-8354672 JEP 519: Compact Object Headers
-
- Closed
-
-
JDK-8361187 Compact Object Headers by Default
-
- Draft
-