OpenJDK 64位服务器VM和Java HotSpot(TM)64位服务器VM

时间:2014-07-16 15:11:59

标签: java jvm openjdk jvm-hotspot

在标题中,我有一个在两个VM上运行的spring-mvc应用程序。

我的应用程序需要处理大量的消息导入(我使用阻塞执行程序,保持queuethreadPool大小非常小)。我为这两个VM设置了相同的JVM选项。基准如下:

  1. JVM :OpenJDK 64位服务器虚拟机,操作系统:Linux(3.8.0-42-通用),架构:amd64 64位。
  2. JVM :Java HotSpot(TM)64位服务器虚拟机操作系统:Windows 7(6.1),架构:amd64 64位。
  3. 但结果却完全不同,在我的windows VM上,我可以按照我的意愿运行MessageImport过程,并且在OutOfMemory上时不会遇到linux错误VM,只需几次导入就会有一些memory error。从JVisualVM开始,我可以看到使用过的堆刚刚开始,GC活动增加,感觉就像VM正在做一些GC工作。

    我试图在两台机器上使所有参数都相同,现在,它们之间唯一不同的似乎就是 JVM

    那么有人可以解释这两个虚拟机之间的区别吗?

    更新

    这里我发布了2张CPU& amp;通过JVisual VM监视器堆。**CPU** **HEAP**

    有没有人遇到同样的问题,有人可以提出一些建议吗? 如有必要,我想我会开始赏金。

1 个答案:

答案 0 :(得分:0)

问题还在于同步。

如果您遇到类似问题,请查看我的其他问题。

c3p0 deadlock