On 10/13/2012 04:22 AM, Ashwin Jayaprakash wrote: > 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.
Not only reflection, all the benchmarks but the method handle one. Given that the overhead seems constant, I think you can try to deactivate the tiered compilation which is enabled by default with jdk8. Also, is it possible to benchmark the creation of a j.l.r.Method/j.l.i.MethodHandle from and the call itself. Rémi > > *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. > > > > > _______________________________________________ > 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