Perf Impact of CMSClassUnloadingEnabled
Srinivas Ramakrishna
ysr1729 at gmail.com
Tue Nov 8 18:20:46 UTC 2011
Right, and this walk is done single-threaded today (perhaps it could be
parallelized
without too much effort?). May be moot with the upcoming changes around perm
gen though....
-- ramki
On Tue, Nov 8, 2011 at 7:58 AM, Jon Masamitsu <jon.masamitsu at oracle.com>wrote:
> Andreas,
>
> Hotspot maintains a list of classes that are loaded in the
> Dictionary (dictionary.hpp/cpp). This list does not keep
> classes alive. After marking (when we know what classes
> are dead), we walk the list and remove dead classes.
> Hotspot does not keep information that says classes have
> not been unloaded, so the list is always walked.
>
> Jon
>
> On 11/07/11 10:33, Andreas Loew wrote:
> > Hi Jon,
> >
> > sorry, a follow-up question from my side: As it shouldn't be the most
> > normal thing even for a Java EE app to constantly dereference
> > classloaders or single classes that need to be GC'ed:
> >
> > In how far does your statement about increased remark pauses still
> > apply in case the PermGen / set of loaded classes has stayed
> > completely constant between initial mark and remark (which should be
> > the usual case)?
> >
> > And wouldn't there a also be a distinction between PermGen and Old Gen?
> >
> > Many thanks & best regards,
> >
> > Andreas
> >
> > --
> > Andreas Loew
> > Senior Java Architect
> > Oracle Advanced Customer Services Germany
> >
> >
> > Am 07.11.2011 16:44, schrieb Jon Masamitsu:
> >> Doing class unloading with CMS will often increase the remark pause
> >> times
> >> and so is not on by default.
> >>
> >> On 11/5/2011 3:29 PM, Martin Hare Robertson wrote:
> >>> Hi,
> >>>
> >>> I recently encountered an interesting GC issue with a Tomcat
> >>> application. I
> >>> came up with a simple repro scenario which I posted to StackOverflow:
> >>>
> http://stackoverflow.com/questions/8017193/when-does-the-perm-gen-get-collected
> >>>
> >>>
> >>> To solve this issue I have been encouraged to use
> >>> -XX:+CMSClassUnloadingEnabled.
> >>> I currently use the following GC configuration.
> >>>
> >>> -XX:+UseMembar
> >>> -XX:+UseConcMarkSweepGC
> >>> -XX:+UseParNewGC
> >>> -XX:CMSInitiatingOccupancyFraction=80
> >>> -XX:+UseCMSInitiatingOccupancyOnly
> >>>
> >>> Is enabling CMSClassUnloadingEnabled likely to have a negative perf
> >>> impact?
> >>> If not, why is it disabled by default?
> >>>
> >>> Thanks
> >>>
> >>> Martin
> _______________________________________________
> hotspot-gc-use mailing list
> hotspot-gc-use at openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20111108/add51560/attachment.htm>
-------------- next part --------------
_______________________________________________
hotspot-gc-use mailing list
hotspot-gc-use at openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use
More information about the hotspot-gc-dev
mailing list