On 27/07/2007, at 11:30 PM, Joe Nathan wrote:
It's for the very simple reason: 64bit machines have 64bit address!
What is address! It's pointers if you are familiar with C, Pointers
are 64bit integers. Pointer arithmetics will deal with 64bit addressed
data. Arithmetic operations on 64bit takes app. twice long as 32bits.
As this is used very many in compiled binaries pointer arithmetics,
you should expect 64bit machines will give you slower performance,
for cpu bound applications. Note that hardware clocking time also
slower than 32 machines.
You may find this interesting...
quoting from wikipedia... http://en.wikipedia.org/wiki/X86-64
Full support for 64-bit integers: All general-purpose registers
(GPRs) are expanded from 32 bits to 64 bits, and all arithmetic and
logical operations, memory-to-register and register-to-memory
operations, etc., are now directly supported for 64-bit integers.
Pushes and pops on the stack are always in eight-byte strides, and
pointers are eight bytes wide.
Additional registers: In addition to increasing the size of the
general-purpose registers, the number of named general-purpose
registers is increased from eight (i.e.
eax,ebx,ecx,edx,ebp,esp,esi,edi) in x86-32 to 16. It is therefore
possible to keep more local variables in registers rather than on the
stack, and to let registers hold frequently accessed constants;
arguments for small and fast subroutines may also be passed in
registers to a greater extent. However, more registers also involves
more saving and restoring of register contents, and AMD64 still has
fewer registers than many common RISC processors (which typically
have 31–64 registers) or VLIW-like machines such as the IA-64 (which
has 128 registers).
Cheers
Adrew
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]