Unloading LambdaForm bytecode
John Rose
john.r.rose at oracle.com
Tue Sep 9 07:27:30 UTC 2014
On Sep 9, 2014, at 12:11 AM, Martin Traverso <mtraverso at gmail.com> wrote:
> Hi John,
>
> Thanks for the detailed explanation.
>
> I ran a few additional experiments after I wrote a simpler program to try to reproduce the issue. I don't see the permgen leak, so something else must be causing it in Presto. I do see the "Loaded..." messages without a corresponding "Unloaded...", so your hypothesis about that happening for anonymous classes seems likely. Interestingly, it has another side-effect: the "Loaded classes" counter in VisualVM and in the ClassLoadingMXBean don't seem to work correctly under this scenario.
>
> It also reproduces the issue I mentioned regarding seemingly duplicate LFs. The code is here if you want to take a quick look: https://github.com/martint/lftest. The weird behavior goes away if I change the indy callsite to return Object instead of String
OK, got it. The path through makeReferenceIdentity is not cached in JDK 7 or 8, for reference types other than Object.
The fix for this is pending:
https://bugs.openjdk.java.net/browse/JDK-8050884
http://cr.openjdk.java.net/~vlivanov/lfc/2014-09-03/12.8050884.identity
— John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/mlvm-dev/attachments/20140909/b60f912a/attachment.html>
More information about the mlvm-dev
mailing list