64ビットバージョンのWindowsが32ビットバージョンよりも大きいのはなぜですか?


回答:


77

サイズの不一致にはいくつかの理由があります。

  1. 64ビットWindowsには、32ビットソフトウェアを実行できる変換レイヤー(Windows 64ビット上のWindows 32ビット、または「WoW64」)が含まれています。
  2. 64ビットWindowsには、32ビットバージョンのさまざまなプログラム(Internet Explorer)とライブラリ(WinSxSフォルダー内)も含まれています。コメントで述べたように、これがサイズの違いの最も重要な理由です。
  3. 64ビットメモリアドレスは32ビットメモリアドレスの2倍の長さであるため、64ビットポインターも2倍の長さです。ポインターを多用する64ビットプログラムは、32ビットプログラムよりも著しく大きくなります。

最初と最後の理由は、64ビットWindowsに同梱されている32ビットソフトウェアほどではありませんが、完全を期すために考慮する必要があります。


4
その主な理由1:sxs.iso内のフォルダーは32ビットで177m、64ビットで315mです。iso windows内のフォルダーinstall.wimは32ビットで7.9g、64ビットで11.9gです。そして、そのフォルダー内に、WinSxS32ビットで3.9g、64ビットで6.9gのフォルダーがあります。ここではサイドバイサイドのものが最大のデータの塊であり、64ビットバージョンのWindowsの32ビットアプリと64ビットアプリの両方にあります。大きなバイナリとアプリケーションのいくつかの二重バージョンを使用しても、isoのサイズにはほとんど影響しません。
アキラ

26
ポイント3が画像サイズにどのように影響するかわかりません。ソースコードにハードコードされているポインター値はほとんどありません。ソフトウェアが実行されるとRAMイメージではなく、ソフトウェアバイナリのスペースを占有するのはそれらだけです。
コンラッドルドルフ

10
(1)の場合、すべてのWow64 .DLLは、Win7 Proインストールで1MB未満しか占有しません。(3)の場合、@ KonradRudolphは正しいです。組み込みコードが32ビットから64ビットに移行する真の理由はありません-いくつかのオペコードが変更されましたが、ほとんどは32ビット幅にすぎません(x86は可変長命令アーキテクチャです)。 この矛盾の大部分は、(2)から発生します。
ブレークスルー

3
@akira sxsフォルダーは(1)ではなく(2)に関係しています。32ビットDLLはWoW64で実行さますが、サイドバイサイドアセンブリはWoW64の一部ではありません。ただし、WinSxSフォルダーは、それぞれのDLLを必要とするプログラムに32ビットと64ビットのバイナリを提供するためにあります-基本的に32ビットと64ビットの両方のDLLを持っています。
ブレークスルー

3
@CrisStringfellow:誰もそれを疑いませんでした。しかし、isoイメージの全体的なサイズへの影響はほとんどありません。サイズの増加の主な原因は、64ビットおよび32ビットのもの(一部のアプリ、多くのdll [ほとんどがWinSxS.iso のフォルダー内にある])を配信することです。
アキラ

11

64ビットバージョンでは、Microsoftは追加のソフトウェアを展開します。たとえば、Internet Explorerには2つのバージョン(64ビットと32ビット)があります。別の例は、Win32アプリケーションのランタイムシステム全体です
また、バイナリコードは大きくなります。おそらく、これらの合計が大きな違いを生むでしょう。


2

64ビットバージョンは、いくつかの理由で一般に32ビットバージョンよりも大きくなっています。

最初に考慮すべきことは、コンパイラのタイプとソフトウェアが実行されるランタイム環境です。ソフトウェアがネイティブコードを生成し、ランタイム環境なしで実行するコンパイラーでビルドされている場合、生成されたコードサイズの小さな違いを見ることができます。これは、CISCプロセッサーのより大きな命令セットに関連します。

第二に、ソフトウェアが.NETなどのランタイム環境で実行するようにコンパイルされている場合、コンパイラは同じ(中間)コードを生成するため、サイズの違いは見られません。

最後に、64ビットバージョンのWindowsには、完全な64ビットバージョンと、32ビットバージョンの一部が含まれています。一部のソフトウェアは32ビットであり、Windows 64ビットでは変更せずに実行する必要があるため、これが必要です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.