64位Java适用于小型独立应用程序

时间:2010-12-10 10:07:23

标签: java

真的值得在64位Java上迁移小型独立Java应用程序(最大:100-200MB堆)。 有什么特别的优点; 我的观察是,它只会增加应用程序的内存占用量。

请发表您的经验/意见。

2 个答案:

答案 0 :(得分:5)

来自official FAQ

64位虚拟机与32位虚拟机的性能特征是什么?

通常,与在32位VM上运行相同的应用程序相比,能够处理大量内存的好处在于64位VM中的性能损失较小。这是因为系统中的每个本机指针占用8个字节而不是4个。这个额外数据的加载会对内存使用产生影响,这会导致执行速度稍慢,具体取决于执行期间加载的指针数量。你的Java程序。好消息是,在64位模式下运行AMD64和EM64T平台时,Java VM会获得一些额外的寄存器,可用于生成更高效的本机指令序列。这些额外的寄存器将性能提高到在比较32位到64位执行速度时通常没有性能损失的程度 当您迁移到64位VM时,将64位平台上运行的应用程序与SPARC上的32位平台相比,性能差异大约为10-20%。在AMD64和EM64T平台上,这种差异范围为0-15%,具体取决于访问应用程序的指针数量。

我会说,如果没有破坏,请不要修复它。

答案 1 :(得分:3)

如果在x64上切换到64位,则可以利用64位寄存器和其他寄存器。这可能会使性能提高5%。

您可以使用-XX:+UseCompressedOops使用相同的内存占用(它使用35位地址空间,32位值最多32 GB)但我发现它最终耗费约5%的性能。