RFR: 8376839: GenShen: Improve performance of evacuations into the old generation
William Kemper
wkemper at openjdk.org
Sat Jan 31 00:32:48 UTC 2026
On Sat, 31 Jan 2026 00:11:07 GMT, William Kemper <wkemper at openjdk.org> wrote:
> When GenShen evacuates an object into the old generation, it also dirties the card for that object and updates the offsets of the first and last object in the card. In many cases, the same card may dirtied repeatedly and the object starts updated unnecessarily. We can reduce the total amount of work by moving these operations into a separate phase of the cycle which allows them to be batched.
src/hotspot/share/gc/shenandoah/shenandoahConcurrentGC.hpp line 97:
> 95: void entry_update_thread_roots();
> 96: void entry_update_card_table();
> 97: void entry_concurrent_update_refs_prepare(ShenandoahHeap* heap);
`entry_concurrent_update_refs_prepare` should be `private`.
src/hotspot/share/gc/shenandoah/shenandoahGenerationalEvacuationTask.cpp line 192:
> 190:
> 191: ShenandoahOldGeneration* const old_gen = _heap->old_generation();
> 192: ShenandoahYoungGeneration* const young_gen = _heap->young_generation();
Removed unused variable.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/29511#discussion_r2748573211
PR Review Comment: https://git.openjdk.org/jdk/pull/29511#discussion_r2748573866
More information about the hotspot-gc-dev
mailing list