41

I'm trying to convince somebody of the benefits of switching to a 64-bit OS but I'm having a hard time finding arguments other than "you can use more than 3GB RAM". Are there any other clearly-communicable benefits in having a 64-bit operating system?

2
  • 1
    Good question, I've been thinking the same. Maybe you should clarify what sort of person you are trying to convince, because some of the answers below would be far too technical if we are talking about a casual computer user.
    – Ash
    Jul 20 '09 at 11:52
  • 1
    ashh: that is because the benefits and drawbacks of 64-bit operating systems are all very technical. At least on Linux, for nontechnical end users there is almost no noticeable difference (even I constantly forget whether the machine I'm using is a 64-bit or a 32-bit one); on Windows, there are more incompatibilities and oddnesses to deal with on 64-bit, but other than that again a nontechnical end user will hardly notice the difference.
    – CesarB
    Jul 20 '09 at 14:19
28
  • For x86-64 compared to IA-32, there is twice as many registers, which allows compilers to generate better code.
  • On most operating systems, the 64-bit ABI allows the generation of better code than the 32-bit ABI (by passing parameters on registers instead of on the stack, for instance).
  • Some things which are extensions on IA-32 are always present on x86-64, so programs can use them without needing to code a fallback (for instance a certain level of SSE).
  • Last but not least, 64-bit time_t, which will be more and more important as we get near 2038.
10
  • 2
    You need to explain what you mean by: "twice as many registers, which allows compilers to generate better code". What is "better code"?
    – Ash
    Jul 20 '09 at 11:41
  • 1
    Also I have noticed that operations with 64-bit integers are roughly four times as fast in 64-bit code against 32-bit code (I regularly pick the wrong C compiler here and then wonder why Lua is faster than C :))
    – Joey
    Jul 20 '09 at 11:43
  • 4
    ashh: Registers are the storage locations the CPU has fastest access to, but on x86 they are a very limited resource. So if you have many local variables to need you would have to constantly shift them from registers to the stack and back again which takes time. With more registers you can hold more of them in reach at a time without needing to use the stack. Compare with you only having two hands: You can only manipulate two things at a time; with fourhands, you can do twice as much (if your brain keeps up, but that aside for now).
    – Joey
    Jul 20 '09 at 11:46
  • @Johannes, you should add your comment as an answer to this question! I was asking rhetorically so that Cesar would add such a clarification.
    – Ash
    Jul 20 '09 at 11:48
  • 1
    You gave several technical reasons without explaining what any of them mean. What is "better code" and how does it benefit the user? Nov 21 '11 at 3:36
7

In fact, you can run more than 3 GB (or more than 4 GB) of RAM on 32-bit operating systems. PAE provides a means for an x86 or x86-64 processor to access up to 64 GB of memory even on a 32-bit operating system. It's not quite as straight-forward as just running a 64-bit OS, mind you. The memory is paged, and so each process is still limited to a maximum of 4 GB. Additionally, not all operating systems support this. Some versions of 32-bit Windows made use of PAE, but unfortunately, so they could support badly written drivers, most versions limited support to 4 GB of memory. For example, Windows XP and Windows Vista are limited to 4 GB (and, as noted, tend to only expose around 3 GB). On the other hand, Windows Server 2008 Enterprise, Datacenter supports 64 GB of RAM.

The Linux kernel supported more than 4 GB as part of the 2.6 kernel. However, the Linux distributions sometimes make you install a "server" kernel image in order to make use of this feature.

2
  • Good point. I can't really figure out why people still believe they need a 64 bit OS to utilize more than 4GB of RAM.
    – neu242
    Jul 20 '09 at 12:34
  • With Linux another option is to run a 64bit kernel and a 32bit userspace, which gets you full access to >= 4GB RAM, although processes are still limited to 4GB each.
    – TRS-80
    Jul 20 '09 at 13:59
5

It really depends on what you want to use the OS for. For the vast majority of "normal" users, the move to 64-bit doesn't really give them much of anything. The only areas currently where 64-bit is really useful is if you want to use more than 4GB of memory (as you stated), or doing calculations with numbers that won't fit into 32-bits.

Eventually, all PCs and OS's will only come in 64-bit varieties, but for now if all they want to do is surf the internet or check e-mail, there isn't a pressing need to move to 64-bit.

3
  • For me, the extra memory support really already is a good enough reason to upgrade. I bet over time, most casual users will feel that way, too :-)
    – marc_s
    Jul 20 '09 at 11:20
  • 2
    @marc, most casual users are not going to feel that way unless software vendors start writing email clients, web browsers and word processors programs that need >4GB RAM. Then again, I'm sure it will not be long before that happens.
    – Ash
    Jul 20 '09 at 11:46
  • @ashh my Firefox already likes to use ~2 GB RAM. It won't take that long :)
    – Quiark
    Jul 20 '09 at 15:12
4

Not only can you have more than 3 GB of RAM, any software compiled/written with 64-bit in mind can use 64 bit registers and data types which can definitely speed up applications that move around enormous amounts of data, such as 3D programs, CAD, Photoshop, etc.

However, if you're just an average Joe that doesn't work with creative programs, and just reads e-mail, surfs the web, watches YouTube videos, you probably won't even notice unless you plug in a device that requires 64 bit drivers, but the vendor has not released any.

2
  • 2
    I have had this problem on many occasions. If you use a x-64 bit system you have lying around as a server, you might find out a nasty surprise when you start adding additional hardware you have lying around. A good illustrative example of the dilemma I experienced was when I attempted to add a 3COM 3c509 NIC card to the system. There are NO drivers anywehre for legacy hardware. I found that I was over a barrel and had to buy a premium intel NIC card to get a 64 bit driver that worked. This problem will go away over time. There is insufficient incentive for vendors to support old hardware.
    – Axxmasterr
    Jul 20 '09 at 14:01
  • @Axxmasterr: ISA slots and x64 CPU support on the same motherboard? Seriously? There can't be that many of those out there. Is this some sort of industrial PC?
    – bk1e
    Aug 10 '09 at 0:29
3

The .NET JIT (Just-In-Time) engine contains more advanced optimizations in x64 version (tail-recursion optimization, for example). This means .NET applications have potential to run faster on 64bit systems.

0

If you can find some good 64-bits versions of your popular software then yes, upgrading to 64-bits will be an advantage. And there are 64-bits versions of certain applications available. However, these applications tend to be related to image manipulations, movie editing and of course sound editing. Basically, just applications that will handle loads of data. The quality of watching a DVD movie on your PC will also increase since the system can handle the data a bit faster and it can store more data too, if your system has more RAM available.

There's also a small performance gain if you tend to run lots of applications simultaneously. (Even if all those applicatuions are 32-bits versions!) Why? Because the OS itself can handle the additional memory a bit easier, thus allowing more applications to stay in-memory which results in less swapping to the swap file. (And you can have a lot bigger swap file too!)

But I upgraded to 64-bits because I do a lot of image manipulations, which requires a powerful system and lots of memory. (Well, I need a lot of memory, at least.)

0

Switching to 64bit provides:

  • more ram in some operating systems. (those that do not support PAE)
  • faster. due to increase in register count, utilization of new processor instructions, more modern compiler optimization that was not backported to 32bit, and removal of windows on windows emulation. the improvement varies but some programs have shown massive increase in speed during testing, up to several hundreds percent faster. other programs have shown no difference in speed.
  • more secure. there are certain memory protections that were added with 64bit that help protect against certain attacks.
  • more stable. multiple companies have observed that simply recompiling their code in 64bit drastically reduces the number of crashes. They are not sure why. My personal best guess is that it has to do with the emulation layer

it should be noted that all desktop and laptop CPUs made by intel and AMD after 2006 are 64bit. (intel made a couple of 32bit atom CPUs for ultra portables like tablets after 2006). It is extremely hard to find hardware that is not 64bit compatible.

-1

No. That's about it.

For general home users there is no advantage to x64. If anything, because all your pointers and now 64 bit, you may find you use more memory to do the same thing.

The only significant advantage to x64 is more memory, and currently that is only really being utilised by servers.

1
  • This answer being downvoted below 0 drew my attention back to it. Given that it's now 11 years old and things have somewhat changed to the point that the question is not really relevant any more. Nobody needs convincing to switch to a 64 bit OS in 2021. I'm leaving the answer as it stands though as I still believe that in 2009 prior to the release of Windows 7 when Windows XP Pro 64 bit edition was the most likely 64 bit OS around the answer was entirely accurate. For the average home user being able to utilize more RAM was the only real reason to switch at that time. Oct 28 at 15:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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