JDK-8277450 : Record number of references into collection set during gc
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 18
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2021-11-19
  • Updated: 2021-11-29
  • Resolved: 2021-11-29
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 18
18 masterFixed
Related Reports
Relates :  
Description
JDK-8272773 introduced a configurable card table card size. Testing showed some really good pause time reductions in some applications adjusting the card table size.

However changing the card table size is a tradeoff between the time it takes to scan the card area and the other processing needed for cards (clear CT, memory overhead).

A rule of thumb is to look at card scanning time - if it takes a significant time of your pauses (random value: 30-40%; read bigramtester), then strongly consider a smaller card table size; if it takes a very small part of the pause time (read: specjbb) it might be useful to increase its size.

Essentially the size of a card directly impacts card scan time - after all it is directly related to the amount of overhead needed to find the potentially single reference in that card. The larger, the more objects you might potentially search in vain.

This is very hard to gauge for people trying to tune the VM: what would help is some measure of how many references into the collection set were found during scanning the cards (i.e. to determine a ratio between bytes scanned / interesting reference).

Add to logging.
Comments
Changeset: e5676f8d Author: Thomas Schatzl <tschatzl@openjdk.org> Date: 2021-11-29 12:05:10 +0000 URL: https://git.openjdk.java.net/jdk/commit/e5676f8d0b4f9e97497581e848e8b06fb7e11828
29-11-2021