Java 8 性能 VS。爪哇7

2024-01-25

我正在通过 JNI 使用 C++ 库开发图像处理 Java 7u80 应用程序。

正如我愿意并行执行流 https://docs.oracle.com/javase/tutorial/collections/streams/parallelism.html使用 Java 8u60,我刚刚切换到 JDK 8 并重新启动了所有单元测试。

Java 8u60 Overall duration: **35'408 [ms]**
Java 7u80 Overall duration: **29'581 [ms]**

在我的例子中,Java 7 比 Java 8 快 17%(相同的代码,代码级别分别为 7 和 8)。

  1. 我想知道这样的结果是否可能特定于我的应用程序,或者其他人是否已经注意到从 Java 7 到 8 的性能下降?
  2. 为了充分利用 Java 8,代码中是否需要进行特殊优化?

如果无能为力,我宁愿使用 Java 7 而不是 8 来实现多线程代码,以保持使用 Java 7 已经获得的性能提升。


针对运行分别的 WLS 12.1.3 启动了 21 个 SOAPUI(并行)测试。爪哇7u51(*) 和 Java8u60在我的测试环境上。

测试结果如下(附截图)。

总结一下:肥皂用户界面时间只是每次传递的 SOAPUI 执行时间,而
the JMX time (每次传递之间的累积)是我的应用程序关键部分花费的时间。
JMX 指标是计算时间(我试图最小化)。我不会依赖 SOAPUI 指标,因为我不知道它是如何准确计算的

根据 SOAPUI,JDK 7u51 是6.7%比 JDK 8u60 更快。
根据 JMX,JDK 7u51 是15.6%比 JDK 8u60 更快。

后者(对我来说)证实了我在单元测试中观察到的趋势 - 相同的结果。尽管这些测试可能不是用于评估 JVM 性能的测试,但我想在我的案例场景中,最好保留 JDK7,因为在我的案例中,性能方面很重要。

Java 7
Pass1 SOAPUI: 22'324 [ms] - JMX :16'286 [ms]
Pass2 SOAPUI: 24'129 [ms] - JMX :33'510 [ms]
Pass3 SOAPUI: 22'170 [ms] - JMX :49'923 [ms]
TOTAL SOAPUI: 68'623 [ms] (JMX: 49'923 [ms])

Java 8
Pass1 SOAPUI: 25'150 [ms] - JMX :19'767 [ms]
Pass2 SOAPUI: 24'564 [ms] - JMX :39'702 [ms]
Pass3 SOAPUI: 23'846 [ms] - JMX :59'172 [ms]
TOTAL SOAPUI: 73'560 [ms] (JMX: 59'172 [ms])

(*):在我的单元测试中没有时间安装 Java 7u60

截图

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 8 性能 VS。爪哇7 的相关文章

随机推荐