【发布时间】:2010-10-28 00:24:30
【问题描述】:
我正在为我们在 SPARC 硬件上运行的 Tomcat 集群进行性能调整。目前 32 位 JVM 为我们提供了足够的内存,但我们将开始使用 Terracotta 进行服务器条带化,因此很快就会需要 64 位 JVM 提供的额外内存。
除了更大的内存占用之外,迁移到 SPARC 上的 64 位 JVM 还会导致性能下降。此常见问题解答显示 SPARC 上 64 位 JVM 的 1.4 版性能下降了 10% - 20%:
http://java.sun.com/docs/hotspot/HotSpotFAQ.html#64bit_performance
如果可以避免的话,我对降低 10% - 20% 的性能不感兴趣。已经讨论过使用 32 位 / 64 位混合方法来避免这个问题,所以也许 1.6 JVM 没有 1.4 JVM 的性能影响:
http://blog.juma.me.uk/2008/10/14/32-bit-or-64-bit-jvm-how-about-a-hybrid/
是否有人在 SPARC 上使用 1.6 版从 32 位 JVM 迁移到 64 位 JVM 的当前性能指标?
谢谢。
院长
【问题讨论】:
-
只是出于好奇 - 你试过了吗?你有什么指标吗?
-
答案中没有提到的是“compressed oops”选项——64位代码,32位指针。由于对象与 16 字节边界对齐(其他四舍五入也是可能的),因此可以移动指针以提供可能的 64 GB Java 堆,同时不增加引用大小。
标签: performance 64-bit jvm 32-bit sparc