I have a laptop with a Core 2 Duo processor, and I'm going to install Linux. What advantages (speed or others) are there in using the 64-bit version of my favorite distro, vs using the 32-bit version ?

Some specifics:

  • This answer states that "Programs may run a bit faster." How much faster ?

  • I have 4GB of ram (or less), so the 4gb memory limit of 32-bit is not a problem.

  • This is a Core 2 Duo, which is somewhat old, but would a newer processor be different ?

I'm asking because I'm deciding between having compatibility with my even older 32bit systems (using compiled binaries, swapping hard drives, and such), and possible speed or other advantages.


If your main concern is to have compatibility with other systems, then perhaps staying on a 32-bit OS is good enough.

The only real reason I could see a benefit with 64-bit OS in this particular case is that some software, specifically designed for 64-bit OS's don't work on 32-bit OS's.

This doesn't seem like an issue for you, if you're not interested in any 64-bit software to begin with.

An interesting read from howtogeek on 32-bit vs 64-bit Ubuntu.

  • @Ramhound fair enough. Although there are workarounds, but I can't be bothered to go into those in detail on this answer. I guess the main point should be that you SHOULDN'T RUN 64-bit software on 32-bit at all. – Leathe Oct 27 '15 at 12:44

https://en.wikipedia.org/wiki/64-bit_computing Pros and cons

(I'm providing a summary)


  1. Encryption benefits with larger registers.
  2. 3 GB Barrier may be present for 32bit OS: "exact barrier varies by motherboard and I/O device configuration, particularly the size of video RAM; it may be in the range of 2.75 GB to 3.5 GB" Misconception that 32 bit OS is restricted to 4GB - PAE unless you have chipset/mobo issues.
  3. 'more general-purpose registers than their 32-bit counterparts' 'leads to a significant speed increase for tight loops'
  4. Java programs that run on a 64-bit Java virtual machine have access to a larger address space.


  1. 'same data occupies more space in memory (due to longer pointers and possibly other types, and alignment padding). This increases the memory requirements of a given process and can have implications for efficient processor cache utilization'

Not the answer you're looking for? Browse other questions tagged or ask your own question.