Re: Why is LambdaMetafactory 10% slower than a static MethodHandle but 80% faster than a non-static MethodHandle?

2018-02-19 Thread Wenlei Xie
o"); >> >> >> @Benchmark >> public Object _1_staticMethodHandle() throws Throwable { >> return staticMethodHandle.invokeExact(dogObject); >> } >> >> @Benchmark >> public Object _2_lambdaMetafactory() { >> return lambdaMetafactoryFunction.apply(dogObject); >> } >> >> @Benchmark >> public Object _3_nonStaticMethodHandle() throws Throwable { >> return nonStaticMethodHandle.invokeExact(dogObject); >> } >> >> private static class Dog { >> private String name; >> >> public Dog(String name) { >> this.name = name; >> } >> >> public String getName() { >> return name; >> } >> >> } >> >> } >> >> >> With kind regards, >> Geoffrey De Smet >> >> ___ >> mlvm-dev mailing list >> mlvm-dev@openjdk.java.net >> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev >> > ___ > mlvm-dev mailing list > mlvm-dev@openjdk.java.net > http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev > -- Best Regards, Wenlei Xie (谢文磊) Email: wenlei@gmail.com ___ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Re: Why is LambdaMetafactory 10% slower than a static MethodHandle but 80% faster than a non-static MethodHandle?

2018-02-19 Thread Wenlei Xie
get method. Is an orthogonal optimization with MethodHandle customization? Best, Wenlei On Mon, Feb 19, 2018 at 12:36 PM, Wenlei Xie wrote: > > However, for java framework developers, > > it would be really useful to have inlining for non-static method handles > too (see Charles

Re: Why is LambdaMetafactory 10% slower than a static MethodHandle but 80% faster than a non-static MethodHandle?

2018-02-19 Thread Wenlei Xie
setup >>> nonStaticMethodHandle = lookup >>> .findVirtual(Dog.class, "getName", >>> MethodType.methodType(String.class)) >>> .asType(MethodType.methodType(Object.class, >>> Object.class)

Re: Implementing Lambda with Capture support makes Metaspace fills LambdaForms$BMH class

2017-05-03 Thread Wenlei Xie
t; speedups. > > In particular, reusing the same method handle chain for all rows and > passing the value (from the table) explicitly should lead to a better > generated code. > > Best regards, > Vladimir Ivanov > > > On 5/2/17 10:29 PM, Wenlei Xie wrote: > >> Hi,

Re: Implementing Lambda with Capture support makes Metaspace fills LambdaForms$BMH class

2017-05-02 Thread Wenlei Xie
Arguments instead of bindTo().invokeExact() ? > > cheers, > Rémi > > -- > > *De: *"Wenlei Xie" > *À: *mlvm-dev@openjdk.java.net > *Envoyé: *Mardi 2 Mai 2017 21:29:38 > *Objet: *Implementing Lambda with Capture support makes Metaspace fills &

Implementing Lambda with Capture support makes Metaspace fills LambdaForms$BMH class

2017-05-02 Thread Wenlei Xie
Hi, We are implementing Lambda function with capture support in a SQL Engine. We currently implement by compiling user-written Lambda Expression into a MethodHandle. And use bindTo to captured fields. Thus for each row we will have a Bound Method Handle. However, we found JVM will generate the by