-
Enhancement
-
Resolution: Fixed
-
P3
-
hs25, 8
-
b17
During evacuation, after copying an object to survivor space, it is scanned for further references that may need to be fixed up. This scanning involves calling oop_iterate() on the object.
We noticed that in many benchmarks (dacapo, specjbb) a large part of the copied objects do not contain any references.
I.e. across all dacapo benchmarks, over all gcs, on average only 63% of objects contain references, on Specjbb2005 only 60% (looking at instanceOops, typeArrayOops and objArrayOops which make up >97% of the objects copied).
Investigate if it is possible to have a very fast check whether the copied object potentially contains references or not, skipping the oop iteration call otherwise (and hopefully improving performance in the process).
We noticed that in many benchmarks (dacapo, specjbb) a large part of the copied objects do not contain any references.
I.e. across all dacapo benchmarks, over all gcs, on average only 63% of objects contain references, on Specjbb2005 only 60% (looking at instanceOops, typeArrayOops and objArrayOops which make up >97% of the objects copied).
Investigate if it is possible to have a very fast check whether the copied object potentially contains references or not, skipping the oop iteration call otherwise (and hopefully improving performance in the process).
- clones
-
JDK-8027761 Investigate fast-path for scanning only objects with references during gc
- Closed
- relates to
-
JDK-8040978 Investigate fast-path for scanning objects during marking and refinement
- Open
-
JDK-8253169 [BACKOUT] Improve large object handling during evacuation
- Resolved