AMD64 or i386 ?

Daniel Pittman daniel at rimspace.net
Sun Mar 11 11:56:35 UTC 2007


Donn <donn.ingle at gmail.com> writes:

>> I have a similar system...64x2 3800 and I'm running 32bit version
>> instead of 64bit. just a pref of mine due to all the hacking required
>> to get some things working. i don't mind doing it, but after a while
>> it becomes a pain.  also, not much of a difference to be honest with
>> you. it runs just as well on 64.
>
> Did you find the 64 to be significantly faster than the 32 on a 64x2? 

The previous poster, who your system doesn't credit, is unlikely to have
experienced a genuine performance difference between a 64 and 32 bit
platform -- all other factors being equal.

> I am impressed by the speed on my new 64x2 -- apps like konqy now open
> in about 2 seconds and that old dog Firefox opens in under 10.

Does a 32-bit kernel running on the same hardware show the same
performance?  

> I have heard from a friend that his experience with Winders 64 was
> that it was almost 50% faster than 32 on his AMD 64x2, so I am kinda
> keen to see what REAL speed is like. Heck, I seem to be strapped onto
> the hood of this monster and I wanna go for a little ride :)

Well, in the real world:

Using 64-bit code means more cache pressure -- significantly more, what
with constants and branches being 64-bit -- which in turn means lower
performance.  

The single biggest performance killer on a modern computer is the number
of lost cycles to a cache miss.  Using larger values, instructions and
branch targets means (effectively) less cache than on a 32-bit system
and, consequently, lower performance.


On the x86 architecture, though, you do actually gain a few things with
the x86-64 target -- the compiler has many more registers and the
ability to assume that modern instruction set extensions are going to be
present.

This means that the compiler, especially when it does a poor job
managing register spills on a restricted register CPU, can deliver code
that runs faster.


In the real world this seems to translate into the 32 and 64 bit
versions of the x86 architecture being a wash for performance.  You
really can't tell the difference without seeking out specific benchmarks
aimed at showing one is better than the other.

This is the as opposed to something like the SPARC architecture; over
there you run a 32-bit userland on a 64-bit kernel because it gains you
a significant performance advantage.


As to Windows: it is possible that in revamping many of the kernel
internals in Windows64 they were able to abandon a number of legacy
features that, in turn, contributed to poor performance.

Linux, out of the box, is considerably more efficient than Windows in
terms of micro performance on the hardware.

Regards,
        Daniel
-- 
Digital Infrastructure Solutions -- making IT simple, stable and secure
Phone: 0401 155 707        email: contact at digital-infrastructure.com.au
                 http://digital-infrastructure.com.au/





More information about the kubuntu-users mailing list