gpt4 book ai didi

java - 在服务器上运行的jvm中反射真的很慢吗

转载 作者:行者123 更新时间:2023-12-02 07:24:40 30 4
gpt4 key购买 nike

我知道反射有点慢,因为所有检查/验证都是在运行时执行的。

假设我正在使用反射实例化一个类并调用它的方法。 所以我的问题是调用总是很慢(即使比正常情况慢 1%)还是只是第一次?假设此类是我的 Web 应用程序的一部分,它被多次调用。

令我困惑的另一个角度是,现在大多数现代 JVM 都使用 JIT 编译器。那么JVM不会尝试优化后续的调用。

最佳答案

是的,调用总是很慢。 JIT编译器优化Java字节码并将其编译为 native 代码;它不会内存或以其他方式缓存方法的结果,并且调用反射 API 意味着调用方法。编译后的 native 代码仍然会在每次调用时调用运行时的反射工具,这就是速度缓慢的原因。

使用反射调用方法总是比直接调用慢得多。但是,请注意,该方法的主体将以正常速度执行——只是调用该方法的过程会变慢。

一如既往,分析您的代码。如果通过反射的实例化和方法调用被证明是瓶颈,则进行相应的优化。 (例如,如果调用的方法正在查询数据库,那么该操作很可能是您的瓶颈,并且反射引入的开销不太可能成为问题。)

关于java - 在服务器上运行的jvm中反射真的很慢吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13709061/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com