【发布时间】:2010-09-29 17:04:53
【问题描述】:
我想知道是否可以实施任何其他优化来提高 Java 中反射调用的速度。并不是说性能令人望而却步,但是当我想到我正在编写的库中的某些代码在某个地方以紧密的循环实现时,我感到很沮丧。
考虑一个实用方法来反射调用:
public static Object invoke(Object targetObject, String methodName, Object[] arguments, Class<?>[] signature)
基本操作是
return method.invoke(targetObject, arguments);
作为性能优化,我使用目标对象的类、方法名称和签名的哈希缓存方法(其代码可能会有所改进),但除此之外,我还能做些什么吗?我听说过对 InvokeDynamic 的一些早期实现的引用,这听起来很有希望,但我只是假设它们可能还不适用,并且我不考虑我自己的字节码操作,因为我想保持实用程序简单(但很快)。
干杯。
【问题讨论】:
标签: java performance reflection