jar在我的机器上较快,但在其他机器上较慢

时间:2018-07-12 20:50:11

标签: java performance jar performance-testing executable-jar

我编写了一个使用多线程的Java程序,并在处理完成后打印运行时。

我已经创建了jar文件,以便可以在大学的服务器上对其进行测试。 eclipse中的程序和jar文件都可以在我的机器上完美运行(8 GB RAM和仅4个CPU Ubuntu)。但是,当我尝试在服务器上执行jar时,速度会慢2倍!知道服务器上的虚拟机具有8GB的RAM和6个CPU(Debian)。

为什么jar文件在虚拟机上速度较慢?我认为这可能是因为Debian机器上的JDK版本,所以我更新了JDK和JRE。

Debian中使用的Java版本)

openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-1~deb9u1-b11)
OpenJDK Server VM (build 25.171-b11, mixed mode)

(我的“应该更慢”的Java版本Ubuntu

java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

1 个答案:

答案 0 :(得分:0)

从Java 7开始,OpenJDK和Oracle HotSpot之间几乎没有区别,请参阅Moving to OpenJDK as the official Java SE 7 Reference Implementation文章。

如果要比较两台Linux机器上的执行情况,可以尝试使用Flame Graphs进行性能分析:

  

火焰图是分析软件的可视化,可以快速,准确地识别出最常见的代码路径。

on Netflix tech blog提供了一个很好的示例,特别是“探查器的问题”部分。