Performance 使用1.6 JVM的SPARC硬件上的64位与32位性能

Performance 使用1.6 JVM的SPARC硬件上的64位与32位性能,performance,64-bit,jvm,32-bit,sparc,Performance,64 Bit,Jvm,32 Bit,Sparc,我正在为运行在SPARC硬件上的Tomcat集群进行性能调优。32位JVM目前为我们提供了足够的内存,但我们将开始使用Terracotta进行服务器条带化,因此64位JVM提供的额外内存可能很快就会被需要 除了更大的内存占用,在SPARC上迁移到64位JVM还会导致性能下降。此常见问题解答显示,SPARC上的64位JVM版本1.4的性能下降了10%-20%: 如果可以避免的话,我不想承受10%-20%的性能损失。有人讨论过使用32位/64位混合方法来避免此问题,因此1.6 JVM可能没有1.4

我正在为运行在SPARC硬件上的Tomcat集群进行性能调优。32位JVM目前为我们提供了足够的内存,但我们将开始使用Terracotta进行服务器条带化,因此64位JVM提供的额外内存可能很快就会被需要

除了更大的内存占用,在SPARC上迁移到64位JVM还会导致性能下降。此常见问题解答显示,SPARC上的64位JVM版本1.4的性能下降了10%-20%:

如果可以避免的话,我不想承受10%-20%的性能损失。有人讨论过使用32位/64位混合方法来避免此问题,因此1.6 JVM可能没有1.4 JVM那样的性能影响:

在SPARC上使用1.6版从32位JVM迁移到64位JVM时,有人有当前的性能指标吗

谢谢


Dean

以下是基于测试客户端调用Solaris上Tomcat 5.5上运行的两个web服务(使用JDK 1.6.0的64位和32位版本)得出的一些结果

在Tomcat 5.5上使用默认设置时,64位JVM导致了大约7%的性能损失。当我将Tomcat参数acceptCount和maxThreads分别加倍到1000时,64位JVM的性能损失不到1%。这可能是因为1000个线程对应于我在测试中使用的并发测试客户机的数量

更改这些参数降低了32位和64位JVM的运行时间,但64位JVM显示出更大的性能改进


不过,您的里程数可能会有所不同。

只是出于好奇,您试过吗?你有什么指标吗?答案中没有提到“压缩oops”选项-64位代码,32位指针。当对象与16字节边界对齐时(可以进行其他舍入),指针可以移动,以提供可能的64 GB Java堆,同时不增加引用大小。