Java 8中较慢的Runnable JAR性能

时间:2018-05-25 14:46:07

标签: performance java-8 java-6

我有一个用Java 6创建的Java解决方案,并且已经使用JDK 1.6.0_45在Eclipse中进行了编译。它是由外部BPMN调度框架定期在线程上执行的Runnable JAR。 JAR进行了一系列调用,如下所示:

  1. REST调用外部c#webservice。
  2. REST调用Microsoft Project Server以检索Excel报告。
  3. 通过SMTP向多个收件人发送电子邮件。
  4. 使用以下Java Runtime Environment在Linux服务器上运行构建:

    java version "1.7.0_79"
    Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
    Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
    

    由于需要更新到Java 8,我已经使用Java-SE 1.8(JDK 1.8.0_121)重新编译了该解决方案。我还设置了一个带有以下JRE的linux服务器:

    openjdk version "1.8.0_171"
    OpenJDK Runtime Environment (build 1.8.0_171-b10)
    OpenJDK 64-Bit Server VM (build 25.171-b10, mixed mode)
    

    我看到的是JAR性能的显着下降,其中REST调用执行起来的时间至少是Java 6的4倍,以及其他任何操作,例如在Java中读取excel文件。使用'top'我可以看到内存使用情况与Java 6大致相同,只是整体执行时间增加了。

    有人知道为什么会这样,Java 8是否存在任何已知问题?

0 个答案:

没有答案