Benefits of a 64-bit application
Posted by Brian Sloman on 23 December 2014 04:34 PM


What does "64-bit" mean, is it really better than "32-bit", and how much better is it?


Part 1: The Quick-and-Dirty

A 64-bit application can access and use more memory than a 32-bit application, and in a more efficient manner.

A 32-bit operating system can handle a maximum of 4 GB (gigabytes) of addressable memory.  That 4 GB gets used up by your onboard video card, by Windows, by device drivers, and by everything else that happens to be running on the computer.  Typically, this leaves about 3 GB of RAM that can actually be used by an application.

A 64-bit operating system can handle a theoretical maximum of 16 EB (exabytes) of addressable memory.  That's four billion times more than 4 GB, and could almost be considered unlimited by today's standards.  So a 64-bit application can access all of the available memory on your computer.

Part 2: The Detailed Explanation

This can be explained with an understanding of two important principles that you may already know about computers:

  1. A computer is essentially just a whole lot of tiny little on/off switches.  And I mean TINY, measured in nanometers - that's billionths of a meter!
  2. Your computer represents everything in a binary number system, which is really a series of 0's and 1's called "bits" that represent the physical on (1) or off (0) state of these tiny switches.

A 32-bit computer system uses memory addresses (called registers) that are 32 bits (or switches) long, whereas a 64-bit computer system uses memory addresses that are 64 bits long.

So a 32-bit memory address can have a maximum value of 11111111111111111111111111111111 (that's 32 switches, all turned on), which in our normal (called "Base 10") number system equals 2^32 or 4,294,967,296.  That's enough to reference 4 GB of memory, which is the limitation of a 32-bit system.  Thus, until recently, computers did not come with more than 4 GB of RAM.  (Computer engineers will point out workarounds to this, but that's another story for another day.)

In contrast, a 64-bit memory address can have a maximum value of 1111111111111111111111111111111111111111111111111111111111111111 (that's 64 switches, all turned on), which equals 2^64 or 18,446,744,073,709,551,616.  That's enough to reference a theoretical maximum of 16 exabytes (or 16 billion gigabytes) of RAM - far more than you could even consider fitting into any of today's workstations.

64-bit versions of Windows are backwards-compatible with 32-bit applications, via a virtualization layer called Windows-on-Windows or WOW64.  But if you're running a 32-bit application on a 64-bit operating system, that 32-bit application is still limited to using a maximum of only 4 GB of memory even if more is available.

While this increased memory capacity is arguably the primary advantage, a 64-bit application can also read and write memory in a more efficient manner.  Through clever optimizations that are done when a program is compiled (that is, when its source code is turned into a runnable program), an application can use the extra bandwidth in a 64-bit memory register to hold multiple shorter values (like two 32-bit values, four 16-bit values, etc) and these values can therefore all be transferred between the CPU and RAM in a single operation instead of two or four seperate operations.  Since a computer can read and write data much faster in the CPU than in RAM, this lets a program run faster.

Part 3: The Future

Will we eventually need to switch to 128-bit systems?  Yes, probably, but it will be a while before workstations will need more than 16 EB of RAM.

"640K ought to be enough for anybody." -Bill Gates, 1981

Please note, this article is meant to be easy-to-read and easy-to-understand.  It makes some important simplifications and, while accurate, it is not thorough.

(2 vote(s))
Not helpful

Comments (0)