我将把tomcat的安装从6.0升级到8.5,并将JVM从6升级到8。我们的java代码现在是用java 6编译的。
我知道在最新的JVM上运行java代码总是一个好主意--性能方面(更不用说安全性方面)。这样,与JVM 6相比,使用java1.6编译的一些代码在JVM 8上可能运行得更快。
但是编译怎么样?通过用java 8编译器编译用java 6编写的代码(即只使用java 6特性),您会得到什么好处吗?也就是说,当用java 8(目标8)而不是java 6编译代码时,用Java1.6编写的代码在JVM 8上运行得更快吗?与java 6相比,java 8的字节码优化了吗?
关于目标旗。与用java 6编译器编译java 6代码相比,用java 8编译器编译java 6代码(当代码仍然要在JVM 6上运行时)有什么好处吗?
发布于 2017-01-29 17:19:17
与用java 6编译器编译java 6代码相比,用java 8编译器编译java 6代码有什么好处吗?
不是的。
性能绝对没有提高,因为java编译器不执行任何类型的优化,甚至不执行明显的优化。
任何可以在javac
生成的字节码上执行的优化都是在应用程序运行后由JIT引擎完成的。
编辑:看看pveentjer的评论,一些简单的优化(例如常数解析)是由javac执行的。但我仍然相信,关于6和8之间的差异的答案仍然是“否”。
发布于 2017-01-05 11:50:09
正如您已经知道的,使用Java语言的最新版本编译Java代码并不是真正的需求。这取决于你。
应考虑的共同要点:
我将(并鼓励您)检查发行说明,看看在新JVM版本中引入了哪些更改、改进、兼容性约束等。
https://stackoverflow.com/questions/41484117
复制相似问题