-2
$\begingroup$

I've noticed that software that exists as a 32-bit-version and a 64-bit-version often has higher system requirements if you want to install the 64-bit version.

One example is Windows 10

The 32-bit version consumes half the disk space and memory compared to the 64-bit version, considering the minimum system requirements.

How can this be justified technically?

$\endgroup$

closed as off-topic by Emil Jeřábek supports Monica, Gamow, Hsien-Chih Chang 張顯之, D.W., Jan Johannsen Apr 5 at 7:42

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Your question does not appear to be a research-level question in theoretical computer science. For more information about the scope, please see help center. Your question might be suitable for Computer Science which has a broader scope." – Emil Jeřábek supports Monica, Gamow, Hsien-Chih Chang 張顯之, D.W., Jan Johannsen
If this question can be reworded to fit the rules in the help center, please edit the question.

0
$\begingroup$

First of all, system requirements between x86 and x64 versions of Windows (and other software) don't usually translate 1:1 to actual sizes, memory usages, and speeds. For example, doing a clean install of the 64-bit version of Windows 10 should only take a bit less than 20 GB hard disk space instead of the 32 GB mentioned in the requirements. For the 32-bit version, the number is around 16 GB so, in reality, the difference is much less than double.

There are several reasons why the resulting installation is bigger for the 64-bit version, but one of them is WOW64, a compatibility environment that enables a 32-bit application to run on a 64-bit system. Some software and libraries are delivered in both versions to provide backward-compatibility. For example, Internet Explorer 32-bit is still the default version to enable support for some 32-bit ActiveX components.

In regards to memory consumption, the overhead between 64-bit and 32-bit software is certainly not even close to double but there is still some overhead:

  1. 64-bit systems can address Terabytes of memory while 32-bit systems are limited to less than 4 GB of RAM. What it means in practice is that software with a lot of pointers will require more space for memory addresses.
  2. Memory alignment takes more space for a 64-bit system. The CPU doesn't handle memory as single addresses but instead reads it in chunks. Working with unaligned memory access might have drastic performance penalties for software due to expensive alignment operations. Here's a picture that shows you why 64-bit systems take more space for memory alignment: Win32 vs Win64 memory alignment
  3. Since 64-bit applications can address more memory, there's a possibility that some software is built to consume more memory when it's possible. This depends completely on the developer but is still a possibility also for Windows OS.

I'd suggest you to take a look at this Stack Overflow post for more analysis on what could and/or will change when moving from 32-bit to 64-bit.

In overall, there certainly are differences between the two Windows versions but they're not as drastic as what the requirements are listing. My assumption is that Microsoft wanted to be consistent and safe on the approximations instead of having something like this:

  • 1 gigabyte (GB) for 32-bit or 1.25 GB for 64-bit
$\endgroup$
  • 3
    $\begingroup$ Please do not answer off-topic questions. $\endgroup$ – Emil Jeřábek supports Monica Apr 4 at 17:28
  • $\begingroup$ Please do not write unnessessary comments like that. His answer is excellent. $\endgroup$ – Vengeancos Apr 4 at 18:37
  • 1
    $\begingroup$ That may well be, but the question and its answer are still off-topic, since they are not about Theoretical Computer Science. $\endgroup$ – Jan Johannsen Apr 5 at 7:41
  • $\begingroup$ @EmilJeřábek, Duly noted. I didn't realize that the question is off-topic when answering it as at the time there were no votes to close it. Should I remove my reply? $\endgroup$ – hankide Apr 5 at 10:20
  • 1
    $\begingroup$ No problem, I don’t think you need to remove the answer, it is after all a fine answer to the question. Just keep in mind for the future to spend a moment’s reflection on whether the question really looks like a research-level question in theoretical computer science, before answering it. $\endgroup$ – Emil Jeřábek supports Monica Apr 5 at 14:02

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