【发布时间】: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 进行比较?