RFR: 8346920: Serial: Support allocation in old generation before GC [v2]
Kirk Pepperdine
kirk at kodewerk.com
Mon Jan 20 20:26:11 UTC 2025
Hi,
> On Jan 20, 2025, at 9:05 PM, Albert Mingkun Yang <ayang at openjdk.org> wrote:
>
> On Mon, 20 Jan 2025 14:55:05 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:
>
>> As far as I understand the change, this change prevents "back-to-back" GCs, opting for allocating everything into the old generation (if not full) instead.
>
> I would not say this patch prefers allocation-in-old-gen over running gc. The behavior is governed by `GCTimeRatio`. One can get back the original behavior with a small `GCTimeRatio`.
>
>> Did you run some other benchmarks with this change? (Maybe the smaller dacapo benchmarks at "reasonably" sized heaps will show something?)
>
> Tried dacapo bms but no perf diff using 2x-live-size heap sizes. (This patch mostly affects the back-to-back gc case, which should be rare in properly configured system/bms.)
>
>> It seems to fix a (rare?) policy issue, but at the same time adds a new mechanic (use of GCTimeRatio) for Serial GC.
>
> Currently, there is no way to tune Serial based on app-vs-gc time, and this patch essentially adds that support.
This is counter to my experience. If young gen is properly tuned, GC overhead is generally minimalized. IME, this is the third most optimal way to control GC overhead. Using GCTimeRatio is way down on that list given the current implementations.
Kind regards,
Kirk
More information about the hotspot-gc-dev
mailing list