在java 1.6中编译并在1.7 jvm

时间:2016-01-11 09:37:00

标签: java performance

我有用java 1.6编译的项目,但是它运行在1.7 jvm的机器上,我想知道如果项目也会用java 1.7编译,是否会有性能提升。

2 个答案:

答案 0 :(得分:4)

(注意:我在这里讲的是Oracle JDK和JVM。)

如果您只是在不利用Java 7中的任何新功能的情况下重新编译源文件,我怀疑您是否发现性能有任何重大变化。

完成性能优化:

  • 通过编译器优化字节码,和
  • 通过JVM,在运行时进行优化,特别是优化"热点" (因此它检测到它们的JVM,HotSpot的名称)

因此,如果您不使用新的Java 7功能,那么您将看到的唯一改进是,如果Java 7编译器执行了Java 6编译器所做的一些重要的新字节码级优化,那么#39; t。我没有看到release notes中列出的任何内容,甚至是Java 6,编译器也得到了很好的优化(坦率地说,我认为大多数优化都是在JVM中进行的;但是在性能方面有所改进JVM 7,你已经从中获益了。

JVM也不必对类文件格式进行任何重大改变。根据{{​​3}},唯一的二进制兼容性更改是由于引入了新的字节码而导致次要版本号发生了变化。但是该字节码(return false;)支持的功能不会出现在Java 6源代码中,所以没有什么可看的。结构没有变化,只是次要版本号。

答案 1 :(得分:-2)

快速的方法是,您应该按照http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html检查您的项目是否在JDK 1.7中使用这些性能增强功能,对吗?