RFR 8152271: MemberNameTable doesn't purge stale entries
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Fri Jun 10 15:33:25 UTC 2016
Coleen,
src/share/vm/prims/methodHandles.cpp:
@@ -975,7 +969,7 @@
- oop saved = MethodHandles::init_method_MemberName(result, info);
+ oop saved = MethodHandles::init_method_MemberName(result, info,
/*intern*/false);
Why do you disable interning in that case?
Otherwise, looks good.
Best regards,
Vladimir Ivanov
On 6/10/16 5:55 PM, Coleen Phillimore wrote:
> Summary: Intern MemberNames in table instead of allocating new entries
>
> For degenerate case, we were leaking native code in the member name
> table. Going with the suggested workaround, it was only a few more
> lines of code to intern MemberName and return the MemberName that was
> already in the table.
>
> This has been performance tested to show no regression and works really
> well for the degenerate test case, even though the real percentage of
> reused MemberName seems quite small.
>
> Tested with all runtime nightly tests, tests in jdk/test/java/lang/invoke.
>
> open webrev at http://cr.openjdk.java.net/~coleenp/8152271.01/webrev
> bug link https://bugs.openjdk.java.net/browse/JDK-8152271
>
> Thanks,
> Coleen
More information about the hotspot-dev
mailing list