<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hi Poonam,<div><br></div><div>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!</div><div><br></div><div>Regards,</div><div>Kirk</div><div><br><div><div>On Jul 14, 2014, at 11:56 AM, Poonam Bajaj <<a href="mailto:poonam.bajaj@oracle.com">poonam.bajaj@oracle.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
<div bgcolor="#FFFFFF" text="#000000">
Hi Krik,<br>
<br>
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:<br>
<br>
With JavaObjectsinPerm disabled (class statics and the Intern
strings allocated in the Java Heap):<br>
[GC [PSYoungGen: 3582048K->288K(3582976K)]
3582376K->616K(3591168K), 0.0085903 secs] [Times: user=0.04
sys=0.00, real=0.01 secs]<br>
[GC [PSYoungGen: 3582240K->160K(3582976K)]
3582568K->488K(3591168K), 0.0092994 secs] [Times: user=0.03
sys=0.01, real=0.01 secs]<br>
[GC [PSYoungGen: 3582112K->320K(3582976K)]
3582440K->648K(3591168K), 0.0081279 secs] [Times: user=0.03
sys=0.00, real=0.01 secs]<br>
[GC [PSYoungGen: 3582272K->160K(3582976K)]
3582600K->488K(3591168K), 0.0098965 secs] [Times: user=0.04
sys=0.00, real=0.01 secs]<br>
[GC [PSYoungGen: 3582112K->320K(3582976K)]
3582440K->648K(3591168K), 0.0088431 secs] [Times: user=0.04
sys=0.00, real=0.01 secs]<br>
[GC [PSYoungGen: 3582272K->128K(3582976K)]
3582600K->456K(3591168K), 0.0400462 secs] [Times: user=0.43
sys=0.01, real=0.04 secs]<br>
[GC [PSYoungGen: 3582080K->288K(3582976K)]
3582408K->616K(3591168K), 0.0101112 secs] [Times: user=0.03
sys=0.00, real=0.01 secs]<br>
<br>
With +JavaObjectsInPerm<br>
[GC [PSYoungGen: 3583136K->416K(3583488K)]
3583368K->648K(3591680K), 0.0039106 secs] [Times: user=0.02
sys=0.00, real=0.00 secs]<br>
[GC [PSYoungGen: 3583392K->384K(3582464K)]
3583624K->616K(3590656K), 0.0031309 secs] [Times: user=0.02
sys=0.01, real=0.00 secs]<br>
[GC [PSYoungGen: 3582336K->288K(3582976K)]
3582568K->520K(3591168K), 0.0035557 secs] [Times: user=0.03
sys=0.00, real=0.00 secs]<br>
[GC [PSYoungGen: 3582240K->352K(3583488K)]
3582472K->584K(3591680K), 0.0044523 secs] [Times: user=0.02
sys=0.00, real=0.00 secs]<br>
[GC [PSYoungGen: 3583328K->416K(3583488K)]
3583560K->648K(3591680K), 0.0040220 secs] [Times: user=0.02
sys=0.01, real=0.00 secs]<br>
[GC [PSYoungGen: 3583392K->352K(3583488K)]
3583624K->584K(3591680K), 0.0043633 secs] [Times: user=0.03
sys=0.00, real=0.00 secs]<br>
[GC [PSYoungGen: 3583328K->384K(3583488K)]
3583560K->616K(3591680K), 0.0032324 secs] [Times: user=0.02
sys=0.00, real=0.00 secs]<br>
[GC [PSYoungGen: 3583360K->384K(3583488K)]
3583592K->616K(3591680K), 0.0035591 secs] [Times: user=0.01
sys=0.00, real=0.00 secs]<br>
<br>
The collection times improve with JavaObjectsInPerm and we can see
little increase in the size of data surviving after the collections.<br>
<br>
Thanks,<br>
Poonam<br>
<br>
On 7/14/2014 12:20 PM, Kirk Pepperdine wrote:
<blockquote cite="mid:4B7BE49F-35EE-4401-A47D-5A2D675372F4@kodewerk.com" type="cite">
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
Hi Poonam,
<div><br>
</div>
<div>Do you know if roots formally in perm were preventing a lot
of data from being reclaimed by the minor collections?</div>
<div><br>
</div>
<div>Regards,</div>
<div>Kirk</div>
<div><br>
<div>
<div>On Jul 14, 2014, at 2:47 AM, Poonam Bajaj <<a moz-do-not-send="true" href="mailto:poonam.bajaj@oracle.com">poonam.bajaj@oracle.com</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
<div bgcolor="#FFFFFF" text="#000000"> Bug: <a moz-do-not-send="true" id="key-val" rel="4732892" href="https://bugs.openjdk.java.net/browse/JDK-8048271">JDK-8048271</a>:
Minor GC times doubled from JDK 6u35 to JDK 7u51 <br>
Webrev: <a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/%7Epoonam/8048271/webrev.00/">http://cr.openjdk.java.net/~poonam/8048271/webrev.00/</a><br>
<br>
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.<br>
<br>
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.<br>
<br>
Testing:<br>
Manual testing comparing the PSYoungGen times with and
without JavaObjectsInPerm option<br>
JPRT<br>
<br>
<br>
Thanks,<br>
Poonam<br>
<br>
<br>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
</div>
</blockquote></div><br></div></body></html>