Wooooosh
Rémi Forax
forax at univ-mlv.fr
Thu Jun 18 12:11:47 PDT 2009
Attila Szegedi a écrit :
> Rémi, you rock.
>
> Attila.
>
or better : Java rocks, or JFluid/Hotswap rocks :)
Rémi
> On 2009.06.18., at 15:37, Rémi Forax wrote:
>
>
>> Christian has sent his first patch to enable compiler support of
>> invokedynamic today,
>> I've worked late last night to do the same for the backport.
>>
>> I am please to announce that the jsr292 backport now comes with a
>> JIT (a
>> kind of) that
>> recompiles at runtime a tree of method handle adapters to a single
>> blob
>> of byte code.
>>
>> Just a small test: with jdk7
>> [forax at localhost sandbox]$ /usr/jdk/jdk1.7.0/bin/java
>> -XX:+EnableInvokeDynamic JITTest
>> value 100000
>> elapsed 30250982 ns
>>
>> with jdk5 + backport without JIT:
>> [forax at localhost sandbox]$ java -javaagent:../lib/jsr292-backport.jar
>> -Dallow.JIT=false JITTest
>> value 100000
>> elapsed 30997166 ns
>>
>> with jdk5 + backport JIT enable
>> [forax at localhost sandbox]$ java -javaagent:../lib/jsr292-backport.jar
>> JITTest
>> value 100000
>> elapsed 14863411 ns
>>
>> Wooosh, it's faster :)
>>
>> I hope to come with the complete support of invokedynamic is the next
>> milestone.
>>
>> Enjoy,
>> Rémi
>>
>> ----------------------------------------------------------------------------------------------------------
>> JITTest.java:
>> import java.dyn.MethodHandle;
>> import java.dyn.MethodHandles;
>> import java.dyn.MethodType;
>>
>> public class JITTest {
>> public static class Test {
>> public static int inc(int value) {
>> return value + 1;
>> }
>> }
>>
>> public static void main(String[] args) {
>> MethodHandle mh=MethodHandles.lookup().findStatic(Test.class,
>> "inc",
>> MethodType.make(int.class, int.class));
>>
>> long start = System.nanoTime();
>>
>> int value = 0;
>> for(int i=0;i<100000;i++) {
>> value = mh.<int>invoke(value);
>> }
>>
>> long end = System.nanoTime();
>>
>> //jsr292.weaver.jit.JIT.debugCounter(Test.class);
>>
>> System.out.println("value " + value);
>> System.out.println("elapsed " + (end - start) + " ns");
>> }
>> }
>>
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev at openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>
More information about the mlvm-dev
mailing list