RFR: 8306656: Generational ZGC: Fix age table logging [v2]

Erik Helin ehelin at openjdk.org
Wed Apr 26 16:45:23 UTC 2023


> Hey all,
> 
> please review this patch that updates the age table logging. The logging now looks like:
> 
> 
> [1.946s][info][gc,reloc    ] GC(22) y: Age Table:
> [1.946s][info][gc,reloc    ] GC(22) y:                    Live              Small              Medium             Large        
> [1.946s][info][gc,reloc    ] GC(22) y: Eden               0M -> 0M        300 -> 300           0 -> 0             0 -> 0       
> [1.946s][info][gc,reloc    ] GC(22) y: Survivor 1         0M -> 0M          2 -> 2             0 -> 0             0 -> 0       
> [1.946s][info][gc,reloc    ] GC(22) y: Survivor 2         0M -> 0M          1 -> 0             0 -> 0             0 -> 0       
> [1.946s][info][gc,reloc    ] GC(22) y: Survivor 3         0M -> 0M          1 -> 1             0 -> 0             0 -> 0       
> [1.946s][info][gc,reloc    ] GC(22) y: Survivor 4         0M -> 0M          0 -> 1             0 -> 0             0 -> 0 
> 
> 
> The first column is the size of the live objects with the given age and how that has changed since the previous collection. The remaining columns are the number of pages of the given age and how those have changed from the previous collection to the current one (so the format is `<previous> -> <current>`). This makes it easy to spot a change in behavior in objects' lifetimes from one collection to another: if objects have similar lifetimes compared to the previous collection then the distribution of pages should be similar between the current collection and the previous collection.
> 
> _Note_: I would like to make the table adapt to live sizes smaller than one megabyte, but that should probably be done for the logging as a whole, not just for the age table.
> 
> I also cleaned up some minor stuff as I went along.
> 
> Testing:
> - [x] Tier 1-3 (macOS-aarch64, Windows-x64, Linux-x64, Linux-aarch64)
> - [x] Local testing on macOS-aarch64
> 
> Thanks,
> Erik

Erik Helin has updated the pull request incrementally with two additional commits since the last revision:

 - Add units
 - StefanK changes

-------------

Changes:
  - all: https://git.openjdk.org/zgc/pull/19/files
  - new: https://git.openjdk.org/zgc/pull/19/files/46d42e6a..e2bded1d

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=zgc&pr=19&range=01
 - incr: https://webrevs.openjdk.org/?repo=zgc&pr=19&range=00-01

  Stats: 162 lines in 10 files changed: 55 ins; 60 del; 47 mod
  Patch: https://git.openjdk.org/zgc/pull/19.diff
  Fetch: git fetch https://git.openjdk.org/zgc.git pull/19/head:pull/19

PR: https://git.openjdk.org/zgc/pull/19


More information about the zgc-dev mailing list