RFR (M): 8201491: G1 support for java.lang.ref.Reference precleaning

Thomas Schatzl thomas.schatzl at oracle.com
Tue May 8 08:39:39 UTC 2018


Hi,

On Mon, 2018-05-07 at 13:18 +0200, Kirk Pepperdine wrote:
> > On May 7, 2018, at 12:50 PM, Thomas Schatzl <thomas.schatzl at oracle.
> > com> wrote:
> > 
> > Hi,
> > 
> >  ping for a reviewer... :)
> > 
> > I am aware that the option name is not the shortest
> > ("G1UseReferencePrecleaning") but something like "G1Precleaning"
> > seems too obtuse. Maybe "G1UseRefPrecleaning"? (We abbreviate
> > "Reference" to "Ref" in other switches already).
> > 
> > Thanks,
> >  Thomas
> > 
> > On Thu, 2018-04-26 at 11:36 +0200, Thomas Schatzl wrote:
> > > Hi all,
> > > 
> > >  can I have reviews for this change that implements reference
> > > precleaning like CMS for G1?
> > > 
[...]
> > > It is also single-threaded, although it could be extended to MT
> > > processing fairly easily. Again, a compromise between effort and
> > > expected gain.
> 
> I have demonstrated reasonable reductions in GC pause time when
> reference processing rates exceed ~50/sec by turning on the MT option

Single threaded reference soft/weak phase2/3 processing should be in
the 5000+/ms now on a fairly recent machine. Your number seems to be
extremely low even with JDK10. JDK10 added some logging to it (with
gc+phases+ref=debug).

> in production envrionments. Since most of the applications I get data
> from exceed the reference processing rates that seem to be present in
> the current test suite leads me to believe that having any amount of
> reference processing removed from the overall GC pause time would be
> beneficial.

Not doing some work in the pause always helps however small this not-
work is :)

Note that in this case "it could be extended to MT processing" refers
to this precleaning in particular only, so existing parallel reference
processing in the pauses is not affected.

There will be huge improvements in reference processing in G1 with
JDK11 as this and the latest series of related fixes show.

Maybe even JDK-8043575 might make it into JDK11.

Thanks,
  Thomas



More information about the hotspot-gc-dev mailing list