Review Request (7u): JDK-8048271: Minor GC times doubled from JDK 6u35 to JDK 7u51
Poonam Bajaj
poonam.bajaj at oracle.com
Mon Jul 14 09:56:21 UTC 2014
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
> <mailto:poonam.bajaj at oracle.com>> wrote:
>
>> Bug: JDK-8048271 <https://bugs.openjdk.java.net/browse/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: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20140714/1a51fd24/attachment.htm>
More information about the hotspot-gc-dev
mailing list