RFR of JDK-8262068: Improve G1 Full GC by skipping compaction for regions with high survival ratio
Hamlin
lihuaming3 at huawei.com
Sat Feb 27 06:59:03 UTC 2021
Just modified some typo in the original email, please check below
content to review again.
Thanks,
Hamlin
在 2021/2/27 14:32, Hamlin 写道:
>
> Hi,
>
> Would you please help to review an improvement in G1 full GC?
>
> bug: https://bugs.openjdk.java.net/browse/JDK-8262068
>
> webrev:
> https://github.com/openjdk/jdk/pull/2760/commits/4be6c18e2201fc8d22ee0f31d11ca7892be21a43
>
> Summary
> -----------
>
> Improve G1 Full GC by skip compaction for regions with high survival
> ratio.
>
> Backgroud
> -----------
>
> There are 4 steps in full gc of G1 GC.
> - mark live objects
> - prepare forwardee
> - adjust pointers
> - compact
>
> When full gc occurs, there may be very high percentage of live bytes
> in some regions. For these regions, it's not efficient to compact them
> and better to skip them, as there are little space to save but many
> objects to copy.
>
> Description
> -----------
>
> We enhance the full gc implementation for the above situation through
> following steps:
> - accumulate live bytes of every hr in mark phase;
> - add hr's with high percentage of live bytes into a "no moving" set
> rather the normal compaction set in prepare phase, and fill dummy
> objects in the places of dead objects in these hr's;
> - nothing special is done in adjust phase;
> - just compact the regions in compaction set;
>
> VM options added
> -----------
>
> - G1SkipCompactionLiveBytesLowerThreshold: The lower threshold of heap
> region live bytes percent in G1 full GC
>
> Test
> -----------
>
> - specjbb2015: no regression
> - dacapo: 3%-11% improvement of full gc pause. Attachment is the
> dacapo h2 full gc pause.
>
> $ java -Xmx1g -Xms1g -XX:G1SkipCompactionLiveBytesLowerThreshold=98
> -XX:ParallelGCThreads=4 -Xlog:gc*=info:file=gc.log -jar
> dacapo-9.12-bach.jar --iterations 5 --size huge --no-pre-iteration-gc h2
>
>
> Thanks,
>
> Hamlin
>
More information about the hotspot-gc-dev
mailing list