Hi John, Brian, I did evaluation JDK-8024630(my patch) vs JDK-8024761(your patch).
I did it for lambda linkage vs anonymous classloading. Because of non-capture lambdas behaviour significantly differ capturing lambdas I have to measure linkage twice (non-capturing vs capturing). Other dimension is Tiered vs NonTiered compilation. I checked it on loading different amount of lambdas (classes) - 1K, 4K, 8K, 16K, 24K, 32K, 64K. (K=1024) Non-capturing lambda: - JDK-8024630 is slightly faster (2-3%) than JDK-8024761 on less amount of lambdas (1K,4K,8K). But starting from 16K JDK-8024761 is faster (also 2-3%). The same for tiered/non-tiered. Capturing lambda: - Non-tiered compilation show the same behaviour and the same percentages as non-capturing lambda. In case of TieredCompilation the initial difference is started from 8% (JDK-8024630 is faster) and became lower and both RFEs has the same performance from 24K lambdas. So looking into my results I'll vote for JDK-8024761 instead of JDK-8024630. Because of your solution is general and performance difference is not significant. On 09/11/2013 10:18 PM, John Rose wrote: > Yes, this is a good tactic, but as written it is too much of a point hack for > lambdas (important though they are). > > I have an alternate solution I would like you to measure. It provides a fast > path for other BSM lookups like Nashorn's, so (if it works well for lambda) > it is preferable. > > I will attach a patch to the bug report. > > — John > > On Sep 11, 2013, at 9:23 AM, Sergey Kuksenko <sergey.kukse...@oracle.com> > wrote: > >> Please review the webrev at: >> >> http://cr.openjdk.java.net/~skuksenko/jsr335/8024630/webrev.00/ >> >> LambdaMetafactory is is a quite frequent bootstrap method for >> invokedynamic in JDK8. >> We can do direct method (LambdaMetafactory) invocation as fastpath when >> proved that bootstrap MethodHandle points to LambdaMetafactory. >> The modification gives +10% - +35% to lambda linkage performance >> (depends on amount of lambdas). >> >> -- >> Best regards, >> Sergey Kuksenko > -- Best regards, Sergey Kuksenko