Java反射效率
来源:互联网 发布:华三交换机进入端口 编辑:程序博客网 时间:2024/06/05 19:39
ReflectTest.javaclass TestClass{
long num;
public long getNum() {
return num;
}
public void setNum(long num) {
this.num = num;
}
}
测试结果:import java.lang.reflect.Method;
public class ReflectTest {
private final int ROUND = 500000;
private TestClass t = new TestClass();
long sum =0;
public long test(int option) {
long beginTime = System.currentTimeMillis();
switch(option)
{
case 1:
System.out.println("Direct test:");
directTest();
break;
case 2:
System.out.println("Standard reflect:");
standardReflect();
break;
case 3:
System.out.println("Cached reflect:");
cachedReflect();
break;
default:
System.out.println("Wrong option!");
}
long endTime = System.currentTimeMillis();
return (endTime-beginTime);
}
private void cachedReflect() {
sum = 0;
try {
Class<?> c = Class.forName("TestClass");
Class<?>[] argType = new Class[1];
argType[0] = long.class;
Method m = c.getMethod("setNum", argType);
for(int i=0;i<ROUND;i++)
{
m.invoke(t, i);
sum += t.getNum();
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void standardReflect() {
sum = 0;
for(int i=0;i<ROUND;i++)
{
try {
Class<?> c = Class.forName("TestClass");
Class<?>[] argType = new Class[1];
argType[0] = long.class;
Method m = c.getMethod("setNum", argType);
m.invoke(t, i);
sum += t.getNum();
} catch (Exception e) {
e.printStackTrace();
}
}
}
private void directTest()
{
sum = 0;
for(int i=0;i<ROUND;i++)
{
t.setNum(i);
sum += t.getNum();
}
}
public static void main(String[] args) {
ReflectTest t =new ReflectTest();
for(int i=1;i<4;i++)
{
System.out.println(t.test(i));
}
}
}
- 转载 java反射效率
- java反射效率
- 测试Java反射效率
- Java反射效率
- JAVA-提高反射效率
- 看看java的反射效率
- Java如果提高反射效率
- java反射效率及优化
- java反射究竟消耗多少效率
- Java反射的效率测试-优先使用FastMethod
- Java反射三种方式的效率对比
- 基于JDK1.7的Java反射效率研究
- 反射效率问题
- 学习笔记——JAVA反射<2>反射机制的效率问题和操作泛型
- Java300StudyNote(1)-反射机制-提高反射效率
- java对象操作、DOM4J操作XML以及java反射效率的对比
- AIR+Starling 中的反射效率
- dynamic 与反射 效率比较
- BM-SC MDF-CP Tricky Performance TR Analysis Process
- NTPD同步失败问题
- SUSE更新iptable信息
- Linux下禁止root用户远程登录的方法
- Suse Linux 多次登录失败锁定用户及解锁
- Java反射效率
- java反射机制基础详解(转)
- transient, volatile, strictfp
- Difference between Serializable and Externalizable in Java Serialization
- C++箴言:绝不在构造或析构期调用虚函数
- Java多态特性
- web程序请求限制
- Collection类区别
- How to disable certain HTTP methods (PUT, DELETE, TRACE and OPTIONS) in JBOSS7