Java8性能与Java7 我正在通过JNI,开发一个使用C++库的图像处理java 7U80应用程序。
正如我愿意使用Java8U60一样,我只是切换到JDK8并重新启动了所有的单元测试Java8性能与Java7 我正在通过JNI,开发一个使用C++库的图像处理java 7U80应用程序。,java,multithreading,java-8,java-7,Java,Multithreading,Java 8,Java 7,正如我愿意使用Java8U60一样,我只是切换到JDK8并重新启动了所有的单元测试 Java 8u60总持续时间:*35'408[ms]** Java 7u80总持续时间:*29'581[ms]** 在我的例子中,Java7比Java8快17%(相同的代码,代码级别分别为7和8) 我想知道这样的结果是否特定于我的应用程序,或者其他人是否已经注意到从Java7到Java8的性能下降 代码中是否有特别的优化来充分利用Java8 如果什么也做不到,我宁愿用Java 7而不是8实现多线程代码,以保持Ja
Java 8u60总持续时间:*35'408[ms]**
Java 7u80总持续时间:*29'581[ms]**
在我的例子中,Java7比Java8快17%(相同的代码,代码级别分别为7和8)
下面的测试结果(在出现问题时包括屏幕截图)。
总而言之:SOAPUI时间只是每个过程的SOAPUI执行时间,而JMX时间(每个过程之间的累积时间)是花在应用程序关键部分上的时间
JMX度量是计算时间(我尝试最小化的时间)。我不会依赖SOAPUI指标,因为我不知道它是如何精确计算的
根据SOAPUI,JDK 7u51比JDK 8u60快6.7%。
根据JMX,JDK 7u51比JDK 8u60快15.6%。
后者(向我)证实了我在单元测试中观察到的趋势-相同的结果。尽管这些测试可能不是用来评估JVM性能的测试,但我想在我的案例场景中,最好还是停留在JDK7上,因为在我的案例中,性能方面很重要 Java7
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]
总计
SOAPUI:68'623[ms]
(JMX:49'923[ms])
Java8
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]
总计
SOAPUI:73'560[ms]
(JMX:59'172[ms])
(*):没有时间在我的单元测试中安装Java 7u60
屏幕截图
除非正确使用,否则使用并行流的速度会较慢。假设您的单元测试没有运行,您可以完全忽略这些数字。@BoristheSpider我相信OP还没有使用stream,他只是切换了JDK版本,并立即注意到总持续时间的变化。您需要阅读。@VGR,如果是35秒和29秒,它不是一个微基准。单元测试通常是最后一件告诉你性能的事情。它们只执行一次大多数操作,以证明它们不会失败。这与生产环境行为不同(这是有意的),Java8相对于Java7在性能上的真正优势在于多线程,比如说Fork-Join模型。图像是一个好主意,尽管它太小,无法欣赏其价值。