I had a processor design class and know very well the actual gate design in bit arithmetic. Aside from the propagation of the carry bit taking a teeny, tiny bit longer in 64 bit arithmetic, it still occurs in a single clock cycle. Further, primitive data type sizes in java are very clearly defined by the language specification (java language spec ver. 3, section 4.2) and will not change size just because the JVM is in a 64-bit environment. Hmm... just thought of an interesting point. Long integers and double precision floats will actually process faster because the CPU can swallow them whole as opposed to handling them in two or more cycles. Pile on multiple cores, pipeline architecture, and two levels of cache and it becomes obvious to me the performance isn't hit at all by 64-bit operation.

--David

Leon Rosenberg wrote:
On 7/27/07, Joe Nathan <[EMAIL PROTECTED]> wrote:
Leon Rosenberg-3 wrote:
Could you provide some additional information?
So far 64bit machines always outperformed 32bit machines in my
personal benchmarks as well as in third party benchmarks I stumbled
upon.

So it would be great if you could provide some links or explanations.

thank you
leon

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.

Sorry, this just sounds plain wrong. If a 64 bit processor comes with
64 bit register it means that it can make an integer 64 bit addition
(long) in one operation, which is at least twice as fast as the same
operation on a 32 bit processor, and an addition of a 32 bit integer
is as fast as on a 32 bit processor, at least what you see outside of
the processor.

Further, following your argumentation, 16 bit processor is faster than
32 bit processor and 8 bit faster than 16... hell my abacus rocks.

I admit that my last course in processors is like 10 years ago, but we
actually measured the performance of the same application under 64 bit
java on a 64 bit system and 32 bit java on a 32 bit system, and guess
what, the 64 bit version outperformed the 32 bit version by nearly
10%.

Despite empirical data, the simply marketing logic tells us, that 64
bit processors are faster, at least amd and intel. The 64 bit
processors (as they were introduced) were higher priced as the 32 bit
alternatives and were shipped with larger cache and higher tacts. But
the whole discussion is pointless anyway, since there are no
comparable 32 bit processors on market anymore, and would you agree
that a 64 bit application runs faster on a 64 bit processor than a 32
bit application?


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.

However, if your application is "data intensive" (with heaps of data
caches),
larger memory can boost quite a lot. You may even get several time
or more better through put than otherwise. That's why there is a push
for 64 bit machine.

Also there is another aspect of programming skills. Many servlet programmers
don't understand underlying garbage collection algorithms. They tend to
make use lot more memory. If you control memory use smartly,
this can boost performance significantly as well!

Errm.... WHAT???



regards
Leon

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to