RFR: 8248314: Parallel: Parallelize parallel full gc Adjust Roots phase

Albert Mingkun Yang ayang at openjdk.java.net
Tue Mar 2 15:26:40 UTC 2021


On Tue, 2 Mar 2021 14:31:40 GMT, Ivan Walulya <iwalulya at openjdk.org> wrote:

>> Testing using specjvm2008: the worse cases goes from ~19ms to ~7ms.
>> 
>> before
>> [0.482s][info][gc,phases] GC(1) Adjust Roots 1.304ms
>> [0.489s][info][gc,phases] GC(3) Adjust Roots 0.474ms
>> [182.277s][info][gc,phases] GC(160) Adjust Roots 2.740ms
>> [214.946s][info][gc,phases] GC(222) Adjust Roots 1.709ms
>> [300.323s][info][gc,phases] GC(1035) Adjust Roots 2.141ms
>> [349.820s][info][gc,phases] GC(1408) Adjust Roots 2.197ms
>> [412.236s][info][gc,phases] GC(1715) Adjust Roots 5.117ms
>> [422.092s][info][gc,phases] GC(1721) Adjust Roots 5.606ms
>> [424.787s][info][gc,phases] GC(1725) Adjust Roots 12.448ms
>> [660.648s][info][gc,phases] GC(1870) Adjust Roots 19.632ms
>> [778.819s][info][gc,phases] GC(1872) Adjust Roots 8.234ms
>> [1667.836s][info][gc,phases] GC(1971) Adjust Roots 5.042ms
>> 
>> after
>> [0.520s][info][gc,phases] GC(1) Adjust Roots 3.996ms
>> [0.525s][info][gc,phases] GC(3) Adjust Roots 0.437ms
>> [211.693s][info][gc,phases] GC(178) Adjust Roots 2.682ms
>> [274.137s][info][gc,phases] GC(823) Adjust Roots 1.751ms
>> [315.286s][info][gc,phases] GC(1435) Adjust Roots 2.213ms
>> [409.044s][info][gc,phases] GC(1986) Adjust Roots 3.261ms
>> [419.851s][info][gc,phases] GC(1992) Adjust Roots 4.337ms
>> [423.395s][info][gc,phases] GC(1996) Adjust Roots 4.967ms
>> [637.759s][info][gc,phases] GC(2151) Adjust Roots 7.613ms
>> [734.576s][info][gc,phases] GC(2153) Adjust Roots 5.029ms
>> [929.933s][info][gc,phases] GC(2155) Adjust Roots 4.284ms
>> [1666.213s][info][gc,phases] GC(2312) Adjust Roots 4.272ms
>
> src/hotspot/share/gc/parallel/psParallelCompact.cpp line 2220:
> 
>> 2218:     PSAdjustSubTask_aot,
>> 2219:     PSAdjustSubTask_old_ref_process,
>> 2220:     PSAdjustSubTask_young_ref_process,
> 
> maybe use enum class, that way you wont have to use `PSAdjustSubTask` in the element names

`SubTasksDone` APIs expect a `uint`, so I don't think `enum class` works here.

-------------

PR: https://git.openjdk.java.net/jdk/pull/2794



More information about the hotspot-gc-dev mailing list