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