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 20:24:09 GMT
Also, I have not programmed in assembly language or in hexadecimal  for some 
time but I would hope that for a 32-bit java process running on a 64-bit 
processor I would fetch a 32-bit pointer and maybe a 32-bit long on a 64-bit 
data bus. Remember we are talking about pointers in code coming into the 
processor via the data bus.

Interesting enough for AIX and Linux a long is 64bit for 64-bit java versus 
32-bit for 64-bit windows. So it looks like for Linux it would be slower than 

Bottom line on how much worse things get is based upon how many pointers and 
longs are used for 64-bit java that are used.


----- Original Message ----
From: Tony Anecito <>
To: Tomcat Users List <>
Sent: Tue, March 1, 2011 12:44:37 PM
Subject: Re: [OT] IIS7/isapi/tomcat performance

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:


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

View raw message