RFR: 8224659: Parallel GC: Use WorkGang (1: PCRefProcTask)
Leo Korinth
leo.korinth at oracle.com
Tue May 28 07:29:28 UTC 2019
Hi!
Yes, improvements are mostly on young collection times. The improvements
really differ between benchmarks and machines (OS and number of
threads). It is not unusual to see a 10% improvement in young
collections. The reason seems to be that the work gang implementation is
better than the task manager one. Also when taking items, no lock is
used. Looking at a run, the time between actual gc work tasks is
shorter, and it also seems like start and finis of the whole collection
is improved. The few small regressions I saw hopefully is mostly jitter.
No part of the actual algorithm has been changed (on purpose at least).
The performance improvements are just a small bonus, the usage of work
gangs in all GCs is the real improvement.
Thanks,
Leo
On 27/05/2019 21:01, Peter B. Kessler wrote:
> On Fri, 24 May 2019 13:25:47 +0200 Leo Korinth <leo.korinth at oracle.com>
> wrote
>> Subject: RFR: 8224659: Parallel GC: Use WorkGang (1: PCRefProcTask)
>>
>> Here is the first patch in a proposed patch series of eight that
>> removes gcTaskManager and uses the WorkGang abstraction instead.
>> ....
>> Performance numbers seems to indicate
>> that we go from roughly no improvements up to more than
>> 40% improvements (!). Regressions seems rare. Performance improvements
>> are primary in the young collections.
>> ....
>
> I assume the performance you cite is in the collection times, not
> overall application performance improvement. Do you know if the
> improvement is in the actual parceling out of the work, or better
> balancing of the parceled out work among the workers, or in the
> termination algorithm, or whatever? What causes the rare regressions?
> E.g., is there something adversarial about the object graphs, or
> something else we should be on the lookout for?
>
> ... peter
More information about the hotspot-gc-dev
mailing list