Java 8性能VS. Java 7

Hey*_*nge 11 java multithreading java-7 java-8

我正在通过JNI使用C++库开发一个成像处理Java 7u80应用程序.

由于我愿意与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性能.

Hey*_*nge 6

针对运行resp的WLS 12.1.3启动了21个SOAPUI(并行)测试.我的测试环境中有Java 7u51(*)和Java 8u60.

测试结果如下(截图包含在案例中).

总结:SOAPUI时间简直SOAPUI执行时间对各遍,而
JMX时间(每个通之间累计)是我的应用程序的关键部分的时间花费.
JMX指标是计算时间(我试图最小化的时间).我不会依赖于SOAPUI指标,因为我不知道它是如何精确计算的

.根据SOAPUI,JDK 7u51 比JDK 8u60快6.7%.
根据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]
TOTALSOAPUI: 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]
TOTALSOAPUI: 73'560 [ms] (JMX: 59'172 [ms])

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

截图

在此输入图像描述