RFR: 8364532: G1: In liveness tracing, print more significant digits for the liveness value [v3]
Albert Mingkun Yang
ayang at openjdk.org
Wed Aug 6 11:59:07 UTC 2025
On Tue, 5 Aug 2025 21:57:41 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:
>> Hi all,
>>
>> please review this small change that adds some more significant digits (3 in total) for the "liveness" column in collection set group logging.
>>
>> E.g. see the emphasized columns that lack precision (it's more irritating with lots of lines showing single-digit values):
>>
>> 50.707s][trace][gc,liveness] GC(13) ### groud-id num-regions gc-eff liveness remset type
>> 50.707s][trace][gc,liveness] GC(13) ### (bytes/ms) % (bytes)
>> 50.707s][trace][gc,liveness] GC(13) ### 1 70 0.0 *100* 3199208 Y
>> 50.707s][trace][gc,liveness] GC(13) ### 2 51 5298129.5 *18* 1224072 M
>> 50.707s][trace][gc,liveness] GC(13) ### 3 5 3223983.6 *31* 176648 M
>> 50.707s][trace][gc,liveness] GC(13) ### 4 5 3022016.3 *32* 176648 M
>>
>>
>> (This depends on PR#26591, so please look at that one first).
>>
>> The change makes sure that three significant digits are printed.
>>
>> Testing: manual review
>>
>> Thanks,
>> Thomas
>
> Thomas Schatzl has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains six commits:
>
> - Merge branch 'master' into 8364532-liveness-significant-digits
> - Merge branch '8364531-factor-out-liveness-code' into 8364532-liveness-significant-digits
> - * use one line per parameter in log message
> - * rename liveness() method to more accurate liveness_percent()
> - 8364532
>
> Hi all,
>
> please review this small change that adds some more significant digits (3 in total) for the "liveness" column in collection set group logging
>
> Testing: manual testing
>
> Thanks,
> Thomas
> - 8364531
>
> Hi all,
>
> please review this refactoring, eliminating some copy&paste, in cset candidate group liveness logging.
>
> The output is mostly the same, except for the young cset group, where the "-" has been replaced to just print the default value (0.0) for efficiency. I did not see this important to have, the gc efficiency for young gen isn't interesting.
>
> Testing: local compilation, gha, visual inspection of output
>
> Thanks,
> Thomas
Minor subjective issue; up to you.
src/hotspot/share/gc/g1/g1ConcurrentMark.cpp line 2984:
> 2982: #define G1PPRL_LEN_H_FORMAT " %14s"
> 2983: #define G1PPRL_GID_GCEFF_FORMAT " %14.1f"
> 2984: #define G1PPRL_GID_LIVENESS_FORMAT " %#.3g"
Why requiring 3 sig digit in total? This can make it hard to parse, even `1.23e-03` can appear. Is `%.2f` enough for the increased precision?
-------------
Marked as reviewed by ayang (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/26595#pullrequestreview-3092186104
PR Review Comment: https://git.openjdk.org/jdk/pull/26595#discussion_r2256914889
More information about the hotspot-gc-dev
mailing list