64bits Vs 32bits processors [memory consumption]

5,376

Solution 1

A processor by itself doesn't consume memory. It accesses memory using address of varying sizes. As a result, a 64-bit processor can address up to 17.17 billion gigabytes of memory whereas a 32-bit processor can only address 4.29 gigabytes.

If you meant, "Does a 64-bit application consume more memory than a 32-bit application?" then yes it does. Memory addresses in a 64-bit process are 8 bytes in length instead of 4 bytes. So while, you won't see a doubling of memory usage, those thousands of pointers used throughout the application will consume twice the memory they normally would.

32-bit addresses haven't been enough for a while now, and many computers now come standard with 4 gigabytes of memory which 32-bit processes can't actually address fully due to operating system and hardware memory mapping overhead. 64-bit addresses will keep us going for a very, very long time.

However, many people don't create proper 64-bit code and GNU/Linux is tweaked to support these failure. So in many cases, 64-bit applications run like 32-bit ones (mmap tweak): http://marc.info/?l=openbsd-misc&m=130683944229077&w=2. Developing true 64-bit code is something that people should work on.

Most consumer 32-bit processors are now no longer in production. Even with the extra memory usage due to 8-byte pointers and other aspects, modern 64-bit processors are by definition, newer and typically more efficient now than processors were back in the 32-bit days.

So in summary, the extra memory usage is a mostly irrelevant issue given the increase in standard memory sizes in today's computers and speed at which processors operate.

Solution 2

Yes.

But I have to type more to submit... Sigh..

Program A compiled as a 32 bit application has a smaller memory footprint than the same program, B, which was compiled as a 64 bit one. This is because each memory block has a larger address..

Example: suppose your phone book was all very local phone numbers, they'd probably just print the numbers without the area codes.. But to fit in more numbers/addresses, printing the area codes takes up more space/ink/mass, etc.

Share:
5,376
lisa17
Author by

lisa17

Updated on September 18, 2022

Comments

  • lisa17
    lisa17 over 1 year

    Does a 64 bit processor consume more memory (RAM) than a 32 bit one?

    • lisa17
      lisa17 almost 13 years
      well.. I asked because I had a Linux Mint 10 32 bits which was using no more than 400Mo memory. And now my 64bit Linux Mint 11 eats 800Mo+ and makes the laptop's fan crazy. So I wondered if 64 bits is the reason :p
  • JdeBP
    JdeBP almost 13 years
    The question isn't about 64-bit programs though, but about 64-bit processors. You haven't explained how they consume memory. ☺ See also the headnote at this answer which makes a very important point and that earned the answer a lot of upvotes.
  • jcrawfordor
    jcrawfordor almost 13 years
    I'm quite certain the asker, by "64 bit processor", actually means "64 bit system", so this question is about software in the end.
  • James T Snell
    James T Snell almost 13 years
    @JdeBP well no processor "consumes" memory. I mean, maybe a food processor having DIMMs shoved in to it. And while that is an awesome image, that's getting off topic. I'm happy with my answer. As jcrawfordor appears to agree, the intent of the question comes down to the software implications. Though I'm starting to hope a food processor was in mind afterall.
  • James T Snell
    James T Snell almost 13 years
    I disagree. As my answer states the same program but compiled as a 32 bit application (rather than 64) requires less memory. If you don't need the full 4GB address space alloted by 32bit AND you don't have to perform much high-precision math, then 32bit CPUs will be faster, consume less power and use memory more efficiently. An example of such an application is an average web server. I run many web servers on VMs and indeed this is where I came to understand there is a place and time for 32bit, in the modern world.
  • James T Snell
    James T Snell almost 13 years
    @brahims - wow that sounds excessive. I would expect, all else being equal, the 64 bit version to generally incur greater overhead. Still, that sounds like there's more going on.
  • lhjjlhklh
    lhjjlhklh almost 13 years
    Note: 64bits application may run slower since it takes more time to write down a 64bit pointer onto the stack than to write a 32bit one . So if it comes to swapping, 64bit programs will be slower. If you swap you need more RAM anyways so 32bit won't help ;). Of course if you have enough memory writing a 64bit pointer onto the stack will be as fast as writing a 32 bit one (a single instruction is needed and memory is accessed in parallel). Again, if the program gets swapper later, 64bit will be slower.
  • James T Snell
    James T Snell almost 13 years
    "32 bits CPU may consume less power, since they are older and less sophisticated." - I'd phrase that as "All else being equal, 32 bit platforms can inherently consume less power than 64 bit ones as there are much fewer transistors to switch state, which costs power.". I'd also like to submit that there are "new" CPUs out there that implement 16bit architectures and 64bit CPUs have existed for a long time - granted they're being adopted far more often in consumer general purpose machines these days.
  • jcrawfordor
    jcrawfordor almost 13 years
    It's very true that 64-bit applications will take more memory (I've seen increases in the range of 50%!) but the memory cieling for 32-bit is actually much lower than people expect, at 2GB of application memory with extension to 3GB only with special support and plenty of caveats. I think virtually all desktop users going forward will benefit from the increase in memory availability, and of course desktop users are what this website is about.