vote up 9 vote down star
3

What are the differences between 32-bit and 64-bit systems?

If you have used both of them, what kind of sharp differences have you experienced?

Would it be a problem to use 32-bit programs on 64-bit systems in some cases?

flag

6 Answers

vote up 32 vote down check

Note: These answers apply to standard PC CPUs (Intel and AMD) and Windows (as typically configured for end-users). Other 32-bit or 64-bit chips, other OSes, and other OS configurations can have different tradeoffs.

From a technical perspective, a 64-bit OS gives you:

  • Allows individual processes to address more than 4GB of RAM each (in practice, most 32-bit OSes also limit the total usable system RAM to <4GB, not just the per-application maximum).

  • All pointers take 8 bytes instead of 4 bytes. The effect on RAM usage is minimal (because you're not likely to have an application filled with gigabytes of pointers), but in the worst theoretical case, this can make the CPU cache be able to hold 1/2 as many pointers (making it be effectively 1/2 the size). For most applications, this is not a huge deal.

  • There are many more general-purpose CPU registers in 64-bit mode. Registers are the fastest memory in your entire system. There are only 8 in 32-bit mode and 16 general purpose registers in 64-bit mode. In scientific computing applications I've written, I've seen up to a 30% performance boost by recompiling in 64-bit mode (my application could really use the extra registers and it wasn't hurt too much by the double-sized pointers).

  • Most 32-bit OSes only let individual applications really use 2GB of RAM, even if you have 4GB installed. This is because the other 2GB of address space are reserved for sharing data between applications, with the OS, and for communicating with drivers. Windows and Linux will let you adjust this tradeoff to be 3GB for applications and 1GB shared, but this can cause problems for some applications that don't expect the change. I'm also guessing it might cripple a graphics card that has 1GB of RAM (but I'm not sure). A 64-bit OS can give individual 32-bit applications closer to the full 4GB to play with.

From a user's perspective:

  • Application speed is usually about the same for a 64-bit app in a 64-bit OS compared to the 32-bit version of the app on a 32-bit OS. Most applications for normal users don't really take advantage of the extra registers or the benefits are balanced out by bigger pointers filling up the cache.

  • If you have any memory hog applications (like photo editors, video processing, scientific computing, etc.), if you have (or can buy) more than 3GB of RAM, and you can get a 64-bit version of the application, the choice is easy: use the 64-bit OS.

  • Some hardware doesn't have 64-bit drivers. Check your motherboard, all plug-in cards, and all USB devices before making the switch. Note that in the early days of Vista, there were lots of problems with drivers. These days things are generally better.

  • If you run enough applications at a time that you're running out of RAM (usually you can tell this because your computer starts getting really slow and you hear the hard drive crunching), then you'll want a 64-bit OS (and sufficient RAM).

  • You can run 32-bit applications (but not drivers) in 64-bit Windows with no problems. The worst slowdown I've measured for a 32-bit app in 64-bit Windows is about 5% (meaning that if it took 60 seconds to do something in 32-bit Windows, it took at most 60/0.95 = 63 seconds with the same 32-bit app in 64-bit Windows).

link|flag
2  
+1 for the excellent description and especially the note at the top pointing out what it applies to. – David Thornley Oct 30 at 13:58
1  
A most excellent and thorough description! – Mokubai Dec 14 at 22:16
2  
Very good answer. Especially because you noted that there is not actually a 4gb RAM limit, but process memory usage limit. Just for your information, I think you should take a look at this link: unawave.de/windows-7-tipps/… – Breakthrough Jan 13 at 12:25
vote up 9 vote down

A 64-bit OS can use more RAM. That's about it, in practice. 64-bit Vista/7 use fancier safety features for where they place vital components in RAM, but that's not really 'noticable' as such.

From ChrisInEdmonton:A 32-bit operating system on an ix86 system with PAE can address up to 64 GB of RAM. A 64-bit operating system on x86-64 can access up to 256 TB of virtual address space, though this may be raised in subsequent processors, up to 16 EB. Note that some operating systems limit the address space further, and most motherboards will have additional restrictions.

link|flag
2  
For an OS, 32-bit versus 64-bit ONLY refers to the size of pointers (what your first paragraph correctly discusses). -1: Some OSes choose to lock the default integer size to the pointer size, but neither Windows nor Linux do so. Integer math precision is unchanged. NO widely-used OS changes the floating point precision (what the second paragraph claims). "float" or "single" is 32-bits, "double" is 64-bits, regardless of whether the OS uses 32-bit or 64-bit pointers. – Mr Fooz Oct 17 at 17:40
Ah, I was clearly mistaken, thanks for clearing that up :) – Phoshi Oct 17 at 18:03
No problem. -1 --> +1 – Mr Fooz Oct 17 at 18:26
May be worth editing your answer to state how much RAM can be accessed. A 32-bit operating system on an ix86 system with PAE can address up to 64 GB of RAM. A 64-bit operating system on x86-64 can access up to 256 TB of virtual address space, though this may be raised in subsequent processors, up to 16 EB. Note that some operating systems limit the address space further, and most motherboards will have additional restrictions. – ChrisInEdmonton Oct 30 at 12:49
I wanted to keep it simple, as the numbers are mostly high enough to be irrelevant at the moment, but it can't hurt to stick them in now. – Phoshi Oct 30 at 13:21
show 2 more comments
vote up 4 vote down

Aside from the ability to address more memory x86_64 also have more registers allowing the compiler to generate more efficient code. The performance improvement will usually be fairly small though.

The x86_64 architecture is backwards compatible with x86. It's possible to run unmodified 32-bit operating systems. It's also possible to run unmodified 32-bit software from a 64-bit OS. That will require all the usual 32-bit libraries though. They may need to be installed separately.

link|flag
vote up 3 vote down

Kristof and Poshi have stated the main technical differences between 32 and 64 bit OS' the user experience is usually much different than theory. The 64 bit consumer versions of Windows to date (XP and Vista) have large gaping holes in their driver support. I have had many printers, scannerrs, and other external devices flat out not work with the 64 bit versions that work fine with 32 bit versions. These are devices that had 64 bit drivers and they still would not work. At this point I would recommend you stay away from anything consumer based that is 64 bit from Microsoft until you hear about how Windows 7 handles this, from real end-users, not just the uber-geeks who currently have access to it. Give it 6 months at least and see what people are experiencing. Personally I will be installing the 32 bit flavor of Windows 7 as my 64 bit versions of Vista is an expensive paper weight that I stoped using eons ago and went back to XP 32 bit.

link|flag
There may be fewer drivers but it's not really quite as bad as this makes it sound. I've been running 64 bits since 2007 and never had any difficulties. Having said that, I don't have any obscure or ancient devices connected. – romkyns Oct 17 at 16:04
1  
My most recent one with Vista 64 bit was a brand new HP multi function printer just last month on a 2 month old Dell system. Both Dell and HP gave up, and my customer paid me to put on XP Pro and get rid of Vista. Nothing obscure about either unit. – Kevin K Oct 20 at 20:28
1  
Typically if you buy a computer with a 64-bit OS, everything will work. I'd be careful before trying to update an older computer, or if I had an older printer, or if I liked to upgrade on my own. – David Thornley Oct 30 at 14:02
vote up 3 vote down

Would it be a problem to use 32-bit programs on 64-bit systems in some cases?

Yes, in some cases. RealPlayer 10.5 for example refuses to install on a 64-bit system.

Most of the time it's smooth though. I've been running a 64-bit Windows system for almost 2 years now and I'd be hard pressed to remember a single other incompatibility.

link|flag
8  
Realplayer refuses to install? you say that like it's a bad thing! :) – ~quack Oct 17 at 17:38
1  
@quack: So true! +1 :) – romkyns Oct 17 at 23:27
vote up 1 vote down

Quotation from Microsoft.com:

In the following table, the increased maximum resources of computers that are based on 64-bit versions of Windows and the 64-bit Intel processor are compared with existing 32-bit resource maximums.

alt text

link|flag
Interesting, but worth noting that some 32-bit versions of Windows allow for more PHYSICAL memory. See for example, en.wikipedia.org/wiki/… – ChrisInEdmonton Oct 30 at 12:51

Your Answer

Get an OpenID
or
never shown

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