Other benefits of 64-bit OS apart from memory expansion?

40

11

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?

Jonathan Prior

Posted 2009-07-20T11:04:15.077

Reputation: 601

1Good 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 – 2009-07-20T11:52:09.893

1ashh: 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 – 2009-07-20T14:19:31.910

Answers

27

  • 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.

CesarB

Posted 2009-07-20T11:04:15.077

Reputation: 4 480

The code can be smaller (takes less memory) and can run faster. – Jamie Hanrahan – 2016-11-30T02:45:02.850

You don't need a 64-bit processor architecture to have a 64-bit time_t. For example, Microsoft Visual C++ 2005 and later supports 64-bit time_t for 32-bit build targets. – bk1e – 2009-08-10T00:19:08.507

1You gave several technical reasons without explaining what any of them mean. What is "better code" and how does it benefit the user? – Igby Largeman – 2011-11-21T03:36:21.090

2You need to explain what you mean by: "twice as many registers, which allows compilers to generate better code". What is "better code"? – Ash – 2009-07-20T11:41:55.110

1Also 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 – 2009-07-20T11:43:33.313

4ashh: 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 – 2009-07-20T11:46:24.523

@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 – 2009-07-20T11:48:51.570

ashh, Cesar said nearly everything there is to say, so I think leaving that as comment here is entirely appropriate. If s?he is inclined to do so it can still be integrated into the answer itself. – Joey – 2009-07-20T15:36:46.513

I've decided to go with this response as an answer. Thanks for the help! – Jonathan Prior – 2009-07-20T17:00:52.980

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.

ChrisInEdmonton

Posted 2009-07-20T11:04:15.077

Reputation: 8 110

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 – 2009-07-20T12:34:53.730

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 – 2009-07-20T13:59:07.757

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.

Andy

Posted 2009-07-20T11:04:15.077

Reputation: 251

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 – 2009-07-20T11:20:30.640

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 – 2009-07-20T11:46:02.310

@ashh my Firefox already likes to use ~2 GB RAM. It won't take that long :) – Quiark – 2009-07-20T15:12:15.043

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.

Steven DeWitt

Posted 2009-07-20T11:04:15.077

Reputation: 505

@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 – 2009-08-10T00:29:07.843

2I 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 – 2009-07-20T14:01:29.453

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.

Milan Gardian

Posted 2009-07-20T11:04:15.077

Reputation: 131

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

Wim ten Brink

Posted 2009-07-20T11:04:15.077

Reputation: 1 815

0

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.

Simon P Stevens

Posted 2009-07-20T11:04:15.077

Reputation: 5 025