当前位置: 代码迷 >> 综合 >> Java6 的类反射瓶颈解决方案
  详细解决方案

Java6 的类反射瓶颈解决方案

热度:30   发布时间:2023-12-07 23:23:56.0

在前面的一篇文章中提到了类反射的瓶颈原因,为了避免大量简单类型的转型,大量的数组产生,提出解决方案

首先sun的method.invoke 是不可用了,因为invoke 的使用本来产生了大量的数组为了参数。

 

解决方案

一般我们类反射通常这样写:

Class="testclass" Method="testmethod" args[0].type="int" value="1" arg[1].type="long" value=1 arg[2].type="byte" value="3" return="void"

 

构建arg 的基础类

  

构建method 的基础类,第三个参数是代表返回的类型

 

然后分析刚才的arg[]的类型,大小,使用 ClassFileAssembler 生成一个虚拟的method1的类继承method,直接生成字节码,并且load到JVM里
而生成的class源码应该类似

 

对args的参数赋值是在虚拟类里面直接赋值的,同时为了避免object args每次大量生成,可以吧object args 放入threadlocal, 绑定到线程,每次取出直接赋值就可以了。

 

 

  相关解决方案