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