Kje*_*eld 2 java performance cross-compiling
在几个月前将我的整个设置从Java 1.5迁移到1.6(J2EE,Tomcat)之后,我才意识到Maven仍然配置为通过Sun的javac参数"-target 1.5"生成针对1.5的类文件.将"-target 1.5"更改为"-target 1.6"时,我可以期待任何性能提升吗?
它不应该有太大的区别.1.6文件可以有堆栈映射/表结构,可以提高字节码验证速度(Apache Harmony只使用更智能的算法).
如果你要去1.4,那么类常量的初始加载会稍微慢一些,但考虑到一个类加载多长时间(这是一种新形式的ldc字节码替换Class.forName,但结果存储在一个静态字段中)这是无关紧要的.
一般来说没关系.运行时编译器是重要的一点,可以生成相同的机器代码.在过去,已经对javac进行了减少优化,以便不破坏运行时编译器的代码,但这与-target标志无关.