views:

859

answers:

1

I'm doing performance tuning for our Tomcat cluster running on SPARC hardware. The 32-bit JVM gives us sufficient memory for now, but we are going to start using Terracotta for server striping so the extra memory the 64-bit JVM offers could be needed soon.

In addition to a bigger memory footprint, moving to the 64-bit JVM on SPARC results in a performance penalty. This FAQ shows a 10% - 20% performance hit for version 1.4 of the 64-bit JVM on SPARC:

http://java.sun.com/docs/hotspot/HotSpotFAQ.html#64bit_performance

I'm not interested in taking a 10% - 20% performance hit if I can avoid it. There's been discussion of using a 32-bit / 64-bit hybrid approach to avoid this problem so maybe the 1.6 JVM doesn't have the performance hit that the 1.4 JVM had:

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

Does anyone have current performance metrics for moving from the 32-bit JVM to the 64-bit JVM using version 1.6 on SPARC?

Thanks.

Dean

+4  A: 

Here are some results based on test clients calling a couple of our web services running on Tomcat 5.5 on Solaris using the 64-bit and 32-bit versions of JDK 1.6.0_13.

The 64-bit JVM resulted in a performance hit of about 7% when using the default settings on Tomcat 5.5. When I doubled the Tomcat parameters acceptCount and maxThreads to 1000 each the performance hit for the 64-bit JVM was less than 1%. This may be because the 1000 threads corresponded to the number of concurrent test clients I was using in the tests.

Changing these parameters lowered the times for both 32-bit and 64-bit JVMs, but the 64-bit JVM showed a larger performance improvement.

Your mileage may vary, though.

Dean Schulze