Java性能64位

时间:2011-02-08 14:33:27

标签: java jvm 64-bit windows-server-2008

我最近在Windows Server 2008 Enterprise上迁移到了64位操作系统。

似乎我的java程序在Windows 2003上的运行速度明显慢于32位。

真的会有任何反馈。

这是一个已知问题吗? 是否有特定设置来提高性能?

(我知道移动到64位会有很小的性能损失,但我看到了显着的性能损失。)

2 个答案:

答案 0 :(得分:7)

使用64位JVM,您可能会看到不同的性能,但是在不同的计算机上使用不同的操作系统会看到更多的差异。

如果要查看使用64位引用是否会降低速度,可以启用-XX:+UseCompressedOops,这会导致64位JVM使用32位引用,但仍可以访问32 Gb内存。 / p>

另一种测试方法是在系统上使用32位JVM。 ;)

我们有一个对延迟敏感的系统,并且在64位JVM上使用32位引用时看到的性能优势很小,因为它将每个地址移位3位。 32位JVM较小的寄存器集对我们的伤害超过它的帮助。

编辑:了解更多详情

http://wikis.sun.com/display/HotSpotInternals/CompressedOops

http://docs.oracle.com/javase/7/docs/technotes/guides/vm/performance-enhancements-7.html

http://blog.juma.me.uk/2008/10/14/32-bit-or-64-bit-jvm-how-about-a-hybrid/

答案 1 :(得分:3)

是的,请查看Hotspot FAQ

8字节指针会增加代码和数据大小并减慢所有内容。如果您正在寻找性能并且不需要大堆,请尝试使用32位Java VM。