tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tony Anecito <>
Subject Re: [OT] IIS7/isapi/tomcat performance
Date Tue, 01 Mar 2011 19:44:37 GMT
Hi Chris,

The performance degregation for 64 bit versus 32 bit has been the subject of 
much concern in the java community.

Here is the number I mentioned straight from Oracle itself:

What are the performance characteristics of 64-bit versus 32-bit VMs? 
Generally, the benefits of being able to address larger amounts of memory come 
with a small performance loss in 64-bit VMs versus running the same application 
on a 32-bit VM.  This is due to the fact that every native pointer in the system 
takes up 8 bytes instead of 4.  The loading of this extra data has an impact on 
memory usage which translates to slightly slower execution depending on how many 
pointers get loaded during the execution of your Java program.  The good news is 
that with AMD64 and EM64T platforms running in 64-bit mode, the Java VM gets 
some additional registers which it can use to generate more efficient native 
instruction sequences.  These extra registers increase performance to the point 
where there is often no performance loss at all when comparing 32 to 64-bit 
execution speed.   

The performance difference comparing an application running on a 64-bit platform 
versus a 32-bit platform on SPARC is on the order of 10-20% degradation when you 
move to a 64-bit VM.  On AMD64 and EM64T platforms this difference ranges from 
0-15% depending on the amount of pointer accessing your application performs.   

If you google using the keywords: java 64-bit vs 32-bit performance
You will find alot of discussion about this.


----- Original Message ----
From: Christopher Schultz <>
To: Tomcat Users List <>
Sent: Tue, March 1, 2011 8:29:11 AM
Subject: Re: [OT] IIS7/isapi/tomcat performance

Hash: SHA1


On 2/28/2011 2:57 PM, Tony Anecito wrote:
> Since the memory pointers are larger you may need to increase your heap size 
> you can compress the address pointers.


> Also, if you use JNI and it is 32-bit then you will have unexpected issues same 
> thing with any native libs your try to use.


> Generally it will be up to 20% slower due to the pointers.

Can you explain that claim? Unless the OP is using compressed pointers
(which will require a decode in order to dereference), why would the
performance drop when using 64-bit pointers instead of 32-bit pointers.
Presumably, the CPU has 64-bit (or bigger) registers and can handle
64-bit numbers just as fast as 32-bit numbers. Or do modern CPUs run in
g a32-bit mode where the hardware doesn't bother to add-out to the 33+ bits?

- -chris
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Mozilla -


To unsubscribe, e-mail:
For additional commands, e-mail:


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message