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?
- 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.
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.
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.
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.
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.
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.
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.)