Reflection vs MethodHandle performance in Oracle JDK 7u7

Ashwin Jayaprakash ashwin.jayaprakash at gmail.com
Fri Oct 12 19:22:10 PDT 2012


I ran the same test on a slightly older laptop with both JDK 7u7 and JDK
8-ea-bin-b59-windows-x64-04_oct_2012. Hardware is i5 M430 - 1 CPU x 2 Cores
x 2 HT running Windows 7, 64 bit.

The results are promising in JDK 8 for MethodHandles and strangely,
Reflection and direct calls were slower than JDK 7u7.

*JDK 7u7, 64 bit, Win:*
 0% Scenario{vm=java, trial=0, benchmark=Direct, mode=-server,
minHeap=-Xms96m, maxHeap=-Xmx96m} 4.60 ns; ?=0.02 ns @ 3 trials
20% Scenario{vm=java, trial=0, benchmark=Iface, mode=-server,
minHeap=-Xms96m, maxHeap=-Xmx96m} 4.65 ns; ?=0.04 ns @ 3 trials
40% Scenario{vm=java, trial=0, benchmark=Reflect, mode=-server,
minHeap=-Xms96m, maxHeap=-Xmx96m} 18.06 ns; ?=0.13 ns @ 3 trials
60% Scenario{vm=java, trial=0, benchmark=Handle, mode=-server,
minHeap=-Xms96m, maxHeap=-Xmx96m} 24.33 ns; ?=0.89 ns @ 10 trials
80% Scenario{vm=java, trial=0, benchmark=Static, mode=-server,
minHeap=-Xms96m, maxHeap=-Xmx96m} 4.75 ns; ?=0.01 ns @ 3 trials

benchmark    ns linear runtime
   Direct  4.60 =====
    Iface  4.65 =====
  Reflect 18.06 ======================
   Handle 24.33 ==============================
   Static  4.75 =====

vm: java
trial: 0
mode: -server
minHeap: -Xms96m
maxHeap: -Xmx96m


*JDK 8 ea b59, 64 bit, Win:*
 0% Scenario{vm=java, trial=0, benchmark=Reflect, mode=-server,
minHeap=-Xms96m, maxHeap=-Xmx96m} 21.31 ns; ?=0.30 ns @ 10 trials
20% Scenario{vm=java, trial=0, benchmark=Handle, mode=-server,
minHeap=-Xms96m, maxHeap=-Xmx96m} 18.00 ns; ?=0.22 ns @ 10 trials
40% Scenario{vm=java, trial=0, benchmark=Direct, mode=-server,
minHeap=-Xms96m, maxHeap=-Xmx96m} 6.61 ns; ?=0.00 ns @ 3 trials
60% Scenario{vm=java, trial=0, benchmark=Iface, mode=-server,
minHeap=-Xms96m, maxHeap=-Xmx96m} 6.63 ns; ?=0.02 ns @ 3 trials
80% Scenario{vm=java, trial=0, benchmark=Static, mode=-server,
minHeap=-Xms96m, maxHeap=-Xmx96m} 6.84 ns; ?=0.30 ns @ 10 trials

benchmark    ns linear runtime
  Reflect 21.31 ==============================
   Handle 18.00 =========================
   Direct  6.61 =========
    Iface  6.63 =========
   Static  6.84 =========

vm: java
trial: 0
mode: -server
minHeap: -Xms96m
maxHeap: -Xmx96m


Regards,
Ashwin.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/mlvm-dev/attachments/20121012/83da7e6f/attachment.html 


More information about the mlvm-dev mailing list