JDK-8048268 : G1 Code Root Migration performs poorly
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 9
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2014-06-26
  • Updated: 2015-06-03
  • Resolved: 2014-09-03
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8 JDK 9
8u40Fixed 9 b31Fixed
Related Reports
Duplicate :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
G1 uses a remembered set per HeapRegions to keep track of all nmethods with oops pointing into that HeapRegion. When objects are moved between HeapRegions, the remembered sets need to be updated.

During the G1 Class Unloading project we found that we spend significantly more time in the "Code Root Migration" time than the time spent scanning the code remembered sets. When G1 starts to unload more objects out of old regions the heuristics find more opportunities to include old regions in the mixed GCs. This has the effect that G1 with Class Unloading sometimes experience longer mixed GC times compared to a build without G1 Class Unloading.

We need to fix this performance problem.