[9] RFR (S): 8058892: FILL_ARRAYS and ARRAYS are eagely initialized in MethodHandleImpl

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Thu Oct 2 15:52:04 UTC 2014


http://cr.openjdk.java.net/~vlivanov/8058892/webrev.00/
https://bugs.openjdk.java.net/browse/JDK-8058892

Core j.l.i classes are preloaded during VM startup in order to avoid 
possible deadlock when accessing JSR292-related functionality from 
multiple threads. After LF sharing-related changes, FILL_ARRAYS and 
ARRAYS are initialized too early. It affects startup time & footprint of 
applications that don't use JSR292.

The fix is to move these fields into MHI.Lazy class, thus delaying their 
initialization to the first usage of JSR292 API.

Testing: failing test, manual (measured HelloWorld app startup time; 
compared -XX:+PrintCompilation logs)

Best regards,
Vladimir Ivanov


More information about the mlvm-dev mailing list