[vox-tech] 64 or 32 bit with 2 Gigs of Ram. One over the other?

Bill Broadley bill at broadley.org
Sat Jan 30 14:08:25 PST 2010


Brian Lavender wrote:
> It would seem that 64 bit is just better, but I have this Net top box
> with 2 Gigs of ram, and I am wondering if anyone can justify running one
> over another. I am just running this as a server and no graphical
> interface. I have Xen running in paravirtualized mode on Debian.
> 
> Is there more overhead with 64 bit addressing? I take it the alu is
> operating at 64 bit on everything in 64 bit mode? That would seem like
> it could do operations with twice the width.

64-bit gives more performance via:
* Larger registers for things like memcpy and bzero, string compares,
  etc.
* More registers (double), so you spend less time shuffling things
  between cache and registers.

As a bonus you get more security as well, 32 bit machines have a single
boundary for code pages above and memory pages below.  x86-64 machines
can decide that per page.  So basically you get better (not perfect)
protection from a buffer overflow being able to write code.

Also you get more flexible memory management to avoid problems caused by
Video cards, BIOS, and misc others take up pieces of the memoryspace.  This
often leads to fragmentation.  So even on a 2GB ram  machine you can't
necessarily allocate 1.5gb since there will allocations around 1GB for other
uses.  With 64 bits it's much easier to keep the memory from fragmenting.

This isn't a major issue at 2GB, but at 4GB often you end up with only
3 or 3.5 GB of ram usable on a 32 bit machine, but pretty close to 4GB
on a 64-bit machine.

Now for the downside.  Pointers being 64 bit take more memory, more
cache, and more memory bandwidth, although nothing prevents you from running
32 bit code on a 64-bit machine if this is an issue.



More information about the vox-tech mailing list