JDK-8061543 : JSR 292: Regression: MethodHandle.invokeWithArguments() became slower in jdk9 b31
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 8u40,9
  • Priority: P3
  • Status: Resolved
  • Resolution: Duplicate
  • Submitted: 2014-10-20
  • Updated: 2015-02-02
  • Resolved: 2014-11-26
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8 JDK 9
8u40Resolved 9Resolved
Related Reports
Duplicate :  
Relates :  
Relates :  
Sub Tasks
JDK-8064512 :  
Description
Problem:

jdk9 b31 has excessively long execution time of MethodHandle.invokeWithArguments() method compared with b30.

Providing that invokedynamic instruction takes ~100 ms to execute the test code:

- In jdk9 b31 MH.invokeWithArguments() takes ~2000 ms
- In jdk9 b30 MH.invokeWithArguments() takes ~300 ms


Comments
Resolved by JDK-8063135.
26-11-2014

This may be related to JDK-8059455.
11-11-2014

-Djava.lang.invoke.MethodHandle.USE_LF_EDITOR=true solves the problem for me. It seems that MethodHandle.asSpreader() construction is what takes so much time. Caching considerably alleviates the problem (back to 2-3x slower than Method.invoke()).
28-10-2014