我要将tomcat安装从版本6.0升级到版本8.5,并将JVM从6升级到8.我们的java代码现在用java 6编译。
我知道在最新的JVM上运行java代码在性能方面总是一个好主意(更不用说安全性了)。通过这种方式,与JVM 6相比,使用java 1.6编译的一些代码可能在JVM 8上运行得更快。
但编译怎么样?通过使用java 8编译器编译用java 6编写的代码(即仅使用java 6特性),可以获得任何收益吗?即当使用java 8(目标8)而不是java 6编译代码时,编写用java 1.6编译的代码是否在JVM 8上运行得更快?与java 6相比,java 8的字节码是否优化?
关于目标旗帜。通过使用针对java 6的java 8编译器编译java 6代码(当代码仍在JVM 6上运行时),与使用java 6编译器编译代码相比,可以获得什么?
答案 0 :(得分:1)
与使用java 6编译器编译代码相比,使用针对java 6的java 8编译器编译java 6代码可以获得什么?
没有
绝对没有性能提升,因为java编译器不执行任何类型的优化,甚至不是明显的优化。
在javac
生成的字节码上执行的任何优化都是在应用程序运行后由JIT引擎完成的。
编辑:看看pveentjer评论,javac执行一些简单的优化(例如恒定分辨率)。但是我仍然相信有关6和8之间差异的答案仍然是"没有"。
答案 1 :(得分:0)
正如您所知,没有真正需要使用该语言的最新版本编译Java代码。这取决于你。
要考虑的共同点:
我会(并且我鼓励您)查看发行说明,以了解新JVM版本中引入了哪些更改,改进,兼容性限制等。