Java Reflection Performance 测验# Java - 爪哇娇娃
c*t
1 楼
这篇文章不错:
http://www.ibm.com/developerworks/library/j-dyn0603/
我自己的 Test 结果,在不同的 JRE 上。code 在最后。第二个 invoke
是 setAccessible 以后(也就是绕过 SecurityManager)。其它的原因
除了因为 wrapper 多了点以外,剩下的估计就是 JIT optimization 了。
因为中间 function 太多。奇怪的是 JRE 1.6 的 JIT 为什么比 1.5
快了那么多。
JRE 1.4.2_14
Regular function call: 47
Get method + invoke: 29994
Invoke only: 3400
Invoke only: 957
JRE 1.5.0_12
Regular function call: 46
Get method + invoke: 34925
Invoke only: 2800
http://www.ibm.com/developerworks/library/j-dyn0603/
我自己的 Test 结果,在不同的 JRE 上。code 在最后。第二个 invoke
是 setAccessible 以后(也就是绕过 SecurityManager)。其它的原因
除了因为 wrapper 多了点以外,剩下的估计就是 JIT optimization 了。
因为中间 function 太多。奇怪的是 JRE 1.6 的 JIT 为什么比 1.5
快了那么多。
JRE 1.4.2_14
Regular function call: 47
Get method + invoke: 29994
Invoke only: 3400
Invoke only: 957
JRE 1.5.0_12
Regular function call: 46
Get method + invoke: 34925
Invoke only: 2800