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

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

请发表您的经验/意见。

从官方常见问题解答 :

64位与32位VM的性能特征是什么?

通常,与在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%,具体取决于访问应用程序的指针数量。

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

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

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