有什么方法可以进一步优化Java反射方法调用?
2022-09-01 16:33:52
我想知道我是否可以实现任何其他优化来提高Java中反射调用的速度。并不是说性能令人望而却步,但是当想到我正在编写的库中的某个代码片段在某个地方的紧密循环中实现时,我得到了一些想法。
考虑一个实用工具方法来反射性地调用:
public static Object invoke(Object targetObject, String methodName, Object[] arguments, Class<?>[] signature)
基本操作是
return method.invoke(targetObject, arguments);
作为性能优化,我使用目标对象的类,方法名称和签名的哈希值(其代码可能需要一些改进)来缓存方法,但除此之外,我还能做些什么吗?我听说过一些听起来很有前途的 InvokeDynamic 早期实现,但我只是假设它们可能还不适用,并且我忽略了我自己的字节代码操作,因为我想保持实用程序简单(但快速)。
干杯。