将Java项目重新编译为新目标版本的性能优势

问题描述 投票:1回答:1

如果从源角度保持不变(java 8)在Java 11上运行,从性能角度重新编译具有新目标版本(java 11)的项目是否有意义?

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
      <source>11</source>
      <target>11</target>
    </configuration>
  </plugin>

在较新的JVM上运行Java 8字节码有什么陷阱?

java performance jvm jvm-bytecode
1个回答
1
投票

不,编译器没有做太多优化,因此您将获得完全相同的字节码。除了该类文件将被标记为Java 11之外,因此您将无法在较低版本上运行它。

Java是向后兼容的,因此在较新版本上运行Java 8字节码没什么特别的。

当然,在较新的JVM上运行Java 8字节码可以(可能)在JIT中使用改进的动态优化,因此,仅使用较新的JVM而无需进行任何其他编译,您更有可能获得改进的性能。

© www.soinside.com 2019 - 2024. All rights reserved.