RFR: Mark-compact performance improvements and cleanups
Roman Kennke
rkennke at redhat.com
Thu May 31 08:54:44 UTC 2018
Am 31.05.2018 um 10:49 schrieb Aleksey Shipilev:
> On 05/31/2018 10:45 AM, Roman Kennke wrote:
>> This does, in fact, raise the question about the interaction between
>> full-gc (with or without liveness counting) and traversal: next
>> traversal cycle after full-gc will use liveness data for heuristics
>> decision. Do we need to clean liveness after full-gc (which basically
>> resets to the initial state before first-ever cycle) ? Or should we fix
>> liveness data after full-gc compaction? Because the marked liveness will
>> not be correct. I suspect fixing it up gives us better data to base
>> heuristics on...
>
> I think ShenandoahPostCompactClosure (re)sets the amount of live data after Full GC, to what heap
> looks like after compaction. E.g. all compacted regions would be set "live" = "used", which is what
> Traversal would expect? See:
>
> class ShenandoahPostCompactClosure : public ShenandoahHeapRegionClosure {
>
> bool heap_region_do(ShenandoahHeapRegion* r) {
> ...
>
> size_t live = r->used();
>
> ...
>
> r->set_live_data(live);
> }
> }
>
Ah! Very well then! Go!
Thanks!
Roman
More information about the shenandoah-dev
mailing list