JDK-8067341 : Modify PLAB sizing algorithm to waste less
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 9
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2014-12-12
  • Updated: 2016-06-07
  • Resolved: 2015-09-01
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 9
9 b83Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
Current PLAB sizing most of the time wastes way more memory than is specified by PLABWasteTargetPercent. It allows the PLABs to get way too large, so particularly at the end of the evacuation there are mainly empty regions.

Try to fix this. 

Good example programs that show this are dacapo eclipse (typically 30% average waste over a run) and crm fuse (50% waste, but mostly only during mixed GC).

The latter might require splitting PLAB sizing between young and mixed gcs. 

In particular the formula to calculate the next PLAB size seems to be problematic.
Comments
It would be nice to develop a regression test for this. But it's not clear if it's possible to provide a good and reliable test. Let's keep in mind the necessity of such test.
15-12-2014