Hi, across java.lang.invoke there are a number of inner Lazy classes whose purpose is to defer initialization of various internally used NamedFunctions and MethodHandles until first usage. The issue is that once *any* function or handle in these classes are referenced they're all initialized, which somewhat defeats the purpose.
By moving to per-MethodHandle and per-NamedFunction lazy initialization, similar to existing code in java.lang.invoke.Invokers, we improve the laziness generally: for a jigsaw Hello World the number of LambdaForms created drops from 74 to 46, reducing heap occupancy for a minimal application and measurably improving startup time. Webrev: http://cr.openjdk.java.net/~redestad/8142334/webrev.01 Bug: https://bugs.openjdk.java.net/browse/JDK-8142334 /Claes