57

The difference in size for the Windows 8 Consumer Preview ISO images, between the 64 bit and the 32 versions is 800 Mb or a difference of 24%.

I've never seen a difference so large.

Why is there such a big difference?

0

3 Answers 3

77

There are several reasons for the size discrepancy:

  1. 64-bit Windows contains a translation layer (Windows 32-bit on Windows 64-bit, or "WoW64") that allows it to run 32-bit software.
  2. 64-bit Windows also contains 32-bit versions of various programs (Internet Explorer) and libraries (in the WinSxS folder). As noted in the comments, this is the most significant reason for the size difference.
  3. 64-bit memory addresses are twice as long as 32-bit memory addresses, so 64-bit pointers are also twice as long. 64-bit programs that make heavy use of pointers will be noticeably larger than their 32-bit counterparts.

The first and last reasons do not contribute nearly as much as the 32-bit software that ships with 64-bit Windows - but for the sake of completeness, they should be considered.

19
  • 4
    its mainly due point 1: the sxs folder inside the .iso is 177m for 32bit, 315m for 64bit. the windows folder inside the install.wim inside the iso is 7.9g for 32bit, 11.9g for 64bit. and inside that folder we have again WinSxS which is 3.9g for 32bit and 6.9g for 64bit. the side-by-side stuff is the biggest chunk of data here and it's there for both 32bit and 64bit apps in the 64bit version of windows. having bigger binaries and some double versions of applications has almost no impact on the size of the isos.
    – akira
    Mar 1, 2012 at 9:51
  • 27
    I don’t see how point 3 would impact the image size. Very few pointer values are hard-coded into the source code. Only those would take up space in the software binary (rather than the RAM image once the software is run). Mar 1, 2012 at 10:10
  • 10
    For (1), all the Wow64 .DLL's take up less then 1MB on my Win7 Pro installation. For (3), @KonradRudolph is correct. There is no true reason for intrinsic code bloat from moving from 32 to 64-bit - a few opcodes changed, although most are still only 32-bits wide (x86 is a variable-length instruction architecture). The majority of this discrepancy arises from (2). Mar 1, 2012 at 12:19
  • 3
    @akira The sxs folder has to do with (2), not (1). The side-by-side assemblies are not part of WoW64, although the 32-bit DLLs are executed under WoW64. However, the WinSxS folder is there to provide 32-bit and 64-bit binaries for programs which require the respective DLL - essentially having both a 32-bit and 64-bit version of the DLL. Mar 1, 2012 at 12:29
  • 3
    @CrisStringfellow: no one doubted that. but the effect on the overall size of the iso images is almost nil. the main chunk of the size-increase is caused by delivering 64bit AND 32bit stuff (some apps, lots of dlls [mostly found inside the WinSxS folder in the .iso]).
    – akira
    Mar 1, 2012 at 17:36
11

In 64bit-versions, Microsoft deploys additional software. For example, there are two versions of Internet Explorer (64 and 32bit). Another example is the whole runtime system for Win32-applications.
Also, binary code will get bigger. Probably the sum of this these makes the big difference.

2

64-bit versions is generally bigger that 32-bit version for a couple of reasons.

The first thing to consider is the type of compiler and the runtime environment where the software executes. If the software is built with a compiler that produces native code and runs without a runtime environment, it is possible to see small differences in generated code size, which is related to larger instruction set in CISC processors.

Second, if the software is compiled to run under a runtime environment, such as .NET, you will not see any size differences, since the compiler generates the same (intermediate) code.

Finally, the 64-bit version of Windows contains the complete 64-bit version with some of the 32-bit version counterparts. This is required since some software is 32-bit and need to run without modification in Windows 64-bit.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .