Parallelizing symbol table/string table scan

Thomas Schatzl thomas.schatzl at
Mon Nov 11 08:19:35 PST 2013


On Mon, 2013-11-11 at 10:53 -0500, Coleen Phillimore wrote:
> On 11/11/2013 08:56 AM, Thomas Schatzl wrote:
> > Hi all,
> >
> >    recently we (the gc team) noticed severe performance issues with
> > symbol table and string table scan during remark.
> >
> > Basically, in G1 these pauses are the largest pauses on a reasonably
> > tuned system. Also, in particular, symbol table scan alone takes 50% of
> > total remark time. String table scan takes another 13%.
> Why do you scan the symbol table during remark?   It doesn't contain any 
> oops.

At the end of remark we scrub it for entries with zero refcount - we do
that at the end of every non-young GCs at the moment.

I *think* the reasoning was that particularly after class unloading
there will be freed symbols, so why not do the symbol scrubbing there as
well. I also *think* that this has been placed there mostly for
convenience (good opportunity since the application is in a STW pause


More information about the hotspot-runtime-dev mailing list