我编写了一个使用多线程的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)
答案 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提供了一个很好的示例,特别是“探查器的问题”部分。