【问题标题】:Slow JVM on new Windows 10 workstation新 Windows 10 工作站上的慢 JVM
【发布时间】:2017-10-02 18:29:02
【问题描述】:

我构建了一个基于英特尔 7820x 处理器(8 核,X-299)的新工作站。相比我的老机器(6核3.5 Ghz Xeon MacPro,2013),单核性能快40%左右,多核性能快100%左右。

有一个例外:Windows 10 (Home) 下的 Java 性能,比 OSX 下的旧机器慢 10% 左右。我尝试了很多选择,从不同版本的 JVM 8(不幸的是 JVM 7 和 9 对我来说没有选择)到使用新的 Turbo Boost 技术,到各种 JVM 参数(XMX,aggressiveopts,...),甚至给 Linux Windows子系统一试。

当我在 Linux (Ubuntu) 下的 JVM 上的同一台机器上运行我的程序时,性能符合预期(快了 40% - 100%)。

有人知道发生了什么吗?我怀疑我错过了 JVM 的某些标志/参数,或者可能遇到了错误,但我似乎已经用完了选项。

我的 JVM 工作负载侧重于单核活动,而多核活动有限。内存使用率从低到中(典型的 Web 服务器),几乎不涉及任何磁盘活动。

【问题讨论】:

  • 有趣。您尝试过 32 位版本的 Java 8 吗?另外,您如何衡量绩效?
  • 部分是一些专有的数字运算算法,部分是网络服务器的性能。
  • Windows 提供了很多“触动”您的流程的东西,这些都是为了更好的用户体验。您始终可以禁用防病毒软件并禁用runtime 目录的缓存。还有其他设置,例如以管理员身份运行(!),但由于您在家庭版本上运行,因此您需要专门检查优化。同样如上所述,您使用的是 32 位还是 64 位客户端/服务器 VM?您还使用 jre 或 jdk 路径调用 webserver 吗? linux VM 是 oracle-jdk 吗?或者您还将 oracle-jdk 与捆绑的 osx/linux open-jdk 进行比较?

标签: java jvm


【解决方案1】:

会怀疑 L3 缓存大小的差异。

【讨论】:

  • 谢谢你的建议,我也是这么想的。然而,这并不能解释为什么 JVM 在 Linux 中的性能在完全相同的机器上如此出色......
  • 如果您运行分析器,您可以进行比较。如果分析器没有显示任何重大内容,那么我会推测计时器(操作系统之间的巨大变化)。那就更难了。
猜你喜欢
  • 1970-01-01
  • 2023-03-11
  • 2019-02-09
  • 2016-07-09
  • 2018-10-13
  • 2019-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多