Perf Impact of CMSClassUnloadingEnabled

Andreas Loew Andreas.Loew at oracle.com
Tue Nov 8 08:13:58 PST 2011


Hi Jon,

many thanks for your reply :-)

The behavior you mention indeed seems a little "unfortunate"... ;-)
Will this change as part of the efforts to completely remove PermGen 
(part of the "HotRockit" initiative) following the example of JRockit?

Thanks again & best regards,

Andreas

-- 
Andreas Loew
Senior Java Architect
Oracle Advanced Customer Services Germany


Am 08.11.2011 16:58, schrieb Jon Masamitsu:
> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-gc-use/attachments/20111108/2467fd8f/attachment.html 


More information about the hotspot-gc-use mailing list