依赖注入是否会对JVM的优化能力产生负面影响?

时间:2016-01-13 07:44:23

标签: java optimization dynamic jvm guice

根据我对使用动态重新编译的Java优化的理解,JVM将基于实时分析不断重新编译字节代码部分,从而使其比即使编写良好的C程序更快。我的一位同事发表评论说,Spring,Hibernate或AspectJ等字节码操作技术会掩盖部分被动态重新编译。这是真的吗?

我使用Google Guice进行依赖注入,我想知道潜在的优化丢失是否会比使用普通的传统Java慢。

1 个答案:

答案 0 :(得分:0)

在大多数情况下,只要接口可用,Spring就会使用java代理(java.lang.reflect.Proxy)来表示@Cache等...,以及依赖注入的常规反射(它会在调用setXxx时调用setXxx)属性xxx是@Autowired注释)。

即使需要字节码操作,该字节码也存储在其中一个应用程序ClassLoader中,因此可供JVM优化。我看不出这与常规代码有什么不同。