Unexpected Java 6 vs 8 GC performance difference
Jon Masamitsu
jon.masamitsu at oracle.com
Fri Jun 3 16:36:33 UTC 2016
Corbin,
Do you have a benchmark that will exhibit this problem?
If not, does you application just create lots of interned strings that
are long
lived?
Thanks.
Jon
On 5/31/2016 3:36 PM, Hughes,Corbin wrote:
>
> After coming across -XX:+PrintGCTaskTimeStamps, I noticed that the
> listed tasks don’t add up to the listed PSYoungGen times, so I ended
> up adding more “printf” style timing outputs to the hotspot source,
> and ended up tracking it down. Turns out it’s the interned strings.
> The way they’re GC’d isn’t particularly efficient for large numbers of
> strings: the call to
> StringTable::unlink_or_oops_do(&_is_alive_closure, &root_closure); was
> taking ~185 ms of the ~200 ms. I wish there were a flag to disable GC
> of interned strings, but I think we’ll be able to get away with using
> something like a Guava Interner instead of the built in StringTable,
> so mystery solved.
>
> *From:*hotspot-gc-use [mailto:hotspot-gc-use-bounces at openjdk.java.net]
> *On Behalf Of *Hughes,Corbin
> *Sent:* Friday, May 27, 2016 9:24 PM
> *To:* hotspot-gc-use at openjdk.java.net
> *Subject:* Re: Unexpected Java 6 vs 8 GC performance difference
>
> Jon,
>
> Thanks for the interest. Hopefully this log will be more helpful. This
> is Java 7 with the –XX:-UseParallelOldGC flag. Perhaps notably, the
> PSYoungGen collections are even slower in Java 7 (regardless of
> whether or not the serial old collector is used).
>
> Thanks,
>
> Corbin
>
> {Heap before GC invocations=456 (full 0):
>
> PSYoungGen total 2091008K, used 2087456K [0x0000000780000000,
> 0x0000000800000000, 0x0000000800000000)
>
> eden space 2084864K, 100% used
> [0x0000000780000000,0x00000007ff400000,0x00000007ff400000)
>
> from space 6144K, 42% used
> [0x00000007ff400000,0x00000007ff688000,0x00000007ffa00000)
>
> to space 6144K, 0% used
> [0x00000007ffa00000,0x00000007ffa00000,0x0000000800000000)
>
> PSOldGen total 3145728K, used 2267941K [0x00000006c0000000,
> 0x0000000780000000, 0x0000000780000000)
>
> object space 3145728K, 72% used
> [0x00000006c0000000,0x000000074a6c9508,0x0000000780000000)
>
> PSPermGen total 819200K, used 57100K [0x0000000680000000,
> 0x00000006b2000000, 0x00000006c0000000)
>
> object space 819200K, 6% used
> [0x0000000680000000,0x00000006837c3130,0x00000006b2000000)
>
> 1461.284: [GC
>
> Desired survivor size 6291456 bytes, new threshold 1 (max 15)
>
> [PSYoungGen: 2087456K->1482K(2091008K)] 4355397K->2269463K(5236736K),
> 0.2986350 secs] [Times: user=0.34 sys=0.00, real=0.30 secs]
>
> Heap after GC invocations=456 (full 0):
>
> PSYoungGen total 2091008K, used 1482K [0x0000000780000000,
> 0x0000000800000000, 0x0000000800000000)
>
> eden space 2084864K, 0% used
> [0x0000000780000000,0x0000000780000000,0x00000007ff400000)
>
> from space 6144K, 24% used
> [0x00000007ffa00000,0x00000007ffb72928,0x0000000800000000)
>
> to space 6144K, 0% used
> [0x00000007ff400000,0x00000007ff400000,0x00000007ffa00000)
>
> PSOldGen total 3145728K, used 2267981K [0x00000006c0000000,
> 0x0000000780000000, 0x0000000780000000)
>
> object space 3145728K, 72% used
> [0x00000006c0000000,0x000000074a6d3528,0x0000000780000000)
>
> PSPermGen total 819200K, used 57100K [0x0000000680000000,
> 0x00000006b2000000, 0x00000006c0000000)
>
> object space 819200K, 6% used
> [0x0000000680000000,0x00000006837c3130,0x00000006b2000000)
>
> }
>
> {Heap before GC invocations=457 (full 0):
>
> PSYoungGen total 2091008K, used 2086346K [0x0000000780000000,
> 0x0000000800000000, 0x0000000800000000)
>
> eden space 2084864K, 100% used
> [0x0000000780000000,0x00000007ff400000,0x00000007ff400000)
>
> from space 6144K, 24% used
> [0x00000007ffa00000,0x00000007ffb72928,0x0000000800000000)
>
> to space 6144K, 0% used
> [0x00000007ff400000,0x00000007ff400000,0x00000007ffa00000)
>
> PSOldGen total 3145728K, used 2267981K [0x00000006c0000000,
> 0x0000000780000000, 0x0000000780000000)
>
> object space 3145728K, 72% used
> [0x00000006c0000000,0x000000074a6d3528,0x0000000780000000)
>
> PSPermGen total 819200K, used 57100K [0x0000000680000000,
> 0x00000006b2000000, 0x00000006c0000000)
>
> object space 819200K, 6% used
> [0x0000000680000000,0x00000006837c3130,0x00000006b2000000)
>
> 1463.560: [GC
>
> Desired survivor size 6291456 bytes, new threshold 1 (max 15)
>
> [PSYoungGen: 2086346K->3177K(2091008K)] 4354327K->2271183K(5236736K),
> 0.2974600 secs] [Times: user=0.33 sys=0.00, real=0.30 secs]
>
> Heap after GC invocations=457 (full 0):
>
> PSYoungGen total 2091008K, used 3177K [0x0000000780000000,
> 0x0000000800000000, 0x0000000800000000)
>
> eden space 2084864K, 0% used
> [0x0000000780000000,0x0000000780000000,0x00000007ff400000)
>
> from space 6144K, 51% used
> [0x00000007ff400000,0x00000007ff71a730,0x00000007ffa00000)
>
> to space 6144K, 0% used
> [0x00000007ffa00000,0x00000007ffa00000,0x0000000800000000)
>
> PSOldGen total 3145728K, used 2268005K [0x00000006c0000000,
> 0x0000000780000000, 0x0000000780000000)
>
> object space 3145728K, 72% used
> [0x00000006c0000000,0x000000074a6d9528,0x0000000780000000)
>
> PSPermGen total 819200K, used 57100K [0x0000000680000000,
> 0x00000006b2000000, 0x00000006c0000000)
>
> object space 819200K, 6% used
> [0x0000000680000000,0x00000006837c3130,0x00000006b2000000)
>
> }
>
> {Heap before GC invocations=458 (full 0):
>
> PSYoungGen total 2091008K, used 2088041K [0x0000000780000000,
> 0x0000000800000000, 0x0000000800000000)
>
> eden space 2084864K, 100% used
> [0x0000000780000000,0x00000007ff400000,0x00000007ff400000)
>
> from space 6144K, 51% used
> [0x00000007ff400000,0x00000007ff71a730,0x00000007ffa00000)
>
> to space 6144K, 0% used
> [0x00000007ffa00000,0x00000007ffa00000,0x0000000800000000)
>
> PSOldGen total 3145728K, used 2268005K [0x00000006c0000000,
> 0x0000000780000000, 0x0000000780000000)
>
> object space 3145728K, 72% used
> [0x00000006c0000000,0x000000074a6d9528,0x0000000780000000)
>
> PSPermGen total 819200K, used 57100K [0x0000000680000000,
> 0x00000006b2000000, 0x00000006c0000000)
>
> object space 819200K, 6% used
> [0x0000000680000000,0x00000006837c31b0,0x00000006b2000000)
>
> 1465.998: [GC
>
> Desired survivor size 6291456 bytes, new threshold 1 (max 15)
>
> [PSYoungGen: 2088041K->1456K(2091008K)] 4356047K->2269485K(5236736K),
> 0.2940590 secs] [Times: user=0.33 sys=0.00, real=0.29 secs]
>
> Heap after GC invocations=458 (full 0):
>
> PSYoungGen total 2091008K, used 1456K [0x0000000780000000,
> 0x0000000800000000, 0x0000000800000000)
>
> eden space 2084864K, 0% used
> [0x0000000780000000,0x0000000780000000,0x00000007ff400000)
>
> from space 6144K, 23% used
> [0x00000007ffa00000,0x00000007ffb6c188,0x0000000800000000)
>
> to space 6144K, 0% used
> [0x00000007ff400000,0x00000007ff400000,0x00000007ffa00000)
>
> PSOldGen total 3145728K, used 2268029K [0x00000006c0000000,
> 0x0000000780000000, 0x0000000780000000)
>
> object space 3145728K, 72% used
> [0x00000006c0000000,0x000000074a6df528,0x0000000780000000)
>
> PSPermGen total 819200K, used 57100K [0x0000000680000000,
> 0x00000006b2000000, 0x00000006c0000000)
>
> object space 819200K, 6% used
> [0x0000000680000000,0x00000006837c31b0,0x00000006b2000000)
>
> }
>
> CONFIDENTIALITY NOTICE This message and any included attachments are
> from Cerner Corporation and are intended only for the addressee. The
> information contained in this message is confidential and may
> constitute inside or non-public information under international,
> federal, or state securities laws. Unauthorized forwarding, printing,
> copying, distribution, or use of such information is strictly
> prohibited and may be unlawful. If you are not the addressee, please
> promptly delete this message and notify the sender of the delivery
> error by e-mail or you may call Cerner's corporate offices in Kansas
> City, Missouri, U.S.A at (+1) (816)221-1024.
>
>
>
> _______________________________________________
> hotspot-gc-use mailing list
> hotspot-gc-use at openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-gc-use/attachments/20160603/c119519c/attachment-0001.html>
More information about the hotspot-gc-use
mailing list