Review Request (7u): JDK-8048271: Minor GC times doubled from JDK 6u35 to JDK 7u51

Kirk Pepperdine kirk at kodewerk.com
Mon Jul 14 10:40:43 UTC 2014


Hi Poonam,

Interesting and not an unexpected result. I’ve often wondered what the effects of loosing perm would be given that all these extra surviving objects would now be exposed to regular collections. This is about what I expected to see. Useful experiment!

Regards,
Kirk

On Jul 14, 2014, at 11:56 AM, Poonam Bajaj <poonam.bajaj at oracle.com> wrote:

> Hi Krik,
> 
> I am not sure about how much data the class statics and the Intern strings in the PermGen hold on to and prevent it from getting collected during minor collections. I ran a simple testcase with and without JavaObjectsInPerm option and here are the results:
> 
> With JavaObjectsinPerm disabled (class statics and the Intern strings allocated in the Java Heap):
> [GC [PSYoungGen: 3582048K->288K(3582976K)] 3582376K->616K(3591168K), 0.0085903 secs] [Times: user=0.04 sys=0.00, real=0.01 secs]
> [GC [PSYoungGen: 3582240K->160K(3582976K)] 3582568K->488K(3591168K), 0.0092994 secs] [Times: user=0.03 sys=0.01, real=0.01 secs]
> [GC [PSYoungGen: 3582112K->320K(3582976K)] 3582440K->648K(3591168K), 0.0081279 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]
> [GC [PSYoungGen: 3582272K->160K(3582976K)] 3582600K->488K(3591168K), 0.0098965 secs] [Times: user=0.04 sys=0.00, real=0.01 secs]
> [GC [PSYoungGen: 3582112K->320K(3582976K)] 3582440K->648K(3591168K), 0.0088431 secs] [Times: user=0.04 sys=0.00, real=0.01 secs]
> [GC [PSYoungGen: 3582272K->128K(3582976K)] 3582600K->456K(3591168K), 0.0400462 secs] [Times: user=0.43 sys=0.01, real=0.04 secs]
> [GC [PSYoungGen: 3582080K->288K(3582976K)] 3582408K->616K(3591168K), 0.0101112 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]
> 
> With +JavaObjectsInPerm
> [GC [PSYoungGen: 3583136K->416K(3583488K)] 3583368K->648K(3591680K), 0.0039106 secs] [Times: user=0.02 sys=0.00, real=0.00 secs]
> [GC [PSYoungGen: 3583392K->384K(3582464K)] 3583624K->616K(3590656K), 0.0031309 secs] [Times: user=0.02 sys=0.01, real=0.00 secs]
> [GC [PSYoungGen: 3582336K->288K(3582976K)] 3582568K->520K(3591168K), 0.0035557 secs] [Times: user=0.03 sys=0.00, real=0.00 secs]
> [GC [PSYoungGen: 3582240K->352K(3583488K)] 3582472K->584K(3591680K), 0.0044523 secs] [Times: user=0.02 sys=0.00, real=0.00 secs]
> [GC [PSYoungGen: 3583328K->416K(3583488K)] 3583560K->648K(3591680K), 0.0040220 secs] [Times: user=0.02 sys=0.01, real=0.00 secs]
> [GC [PSYoungGen: 3583392K->352K(3583488K)] 3583624K->584K(3591680K), 0.0043633 secs] [Times: user=0.03 sys=0.00, real=0.00 secs]
> [GC [PSYoungGen: 3583328K->384K(3583488K)] 3583560K->616K(3591680K), 0.0032324 secs] [Times: user=0.02 sys=0.00, real=0.00 secs]
> [GC [PSYoungGen: 3583360K->384K(3583488K)] 3583592K->616K(3591680K), 0.0035591 secs] [Times: user=0.01 sys=0.00, real=0.00 secs]
> 
> The collection times improve with JavaObjectsInPerm and we can see little increase in the size of data surviving after the collections.
> 
> Thanks,
> Poonam
> 
> On 7/14/2014 12:20 PM, Kirk Pepperdine wrote:
>> 
>> Hi Poonam,
>> 
>> Do you know if roots formally in perm were preventing a lot of data from being reclaimed by the minor collections?
>> 
>> Regards,
>> Kirk
>> 
>> On Jul 14, 2014, at 2:47 AM, Poonam Bajaj <poonam.bajaj at oracle.com> wrote:
>> 
>>> Bug: JDK-8048271: Minor GC times doubled from JDK 6u35 to JDK 7u51 
>>> Webrev: http://cr.openjdk.java.net/~poonam/8048271/webrev.00/
>>> 
>>> With JDK7, the minor GC collection times have increased as compared to the collection times with JDK6uxx. These pauses have increased due to the fact that the Intern strings and the class statics were moved from PermGen to the Java Heap in JDK7 and, are collected as part of the minor GC collections thus contributing to the increase in GC times.
>>> 
>>> These changes make the debug flag 'JavaObjectsInPerm' a diagnostic flag so that it can be used to revert the PermGen changes in jdk7 and get the earlier minor GC pause times.
>>> 
>>> Testing:
>>> Manual testing comparing the PSYoungGen times with and without JavaObjectsInPerm option
>>> JPRT
>>> 
>>> 
>>> Thanks,
>>> Poonam
>>> 
>>> 
>> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20140714/58e4802b/attachment.html>


More information about the hotspot-gc-dev mailing list