Windows では、通常の状況では、32 ビット プロセスは 2GB の RAM (または boot.ini ファイルの特別なスイッチを使用すると 3GB) にしかアクセスできません。64 ビット オペレーティング システムで 32 ビット プロセスを実行する場合、使用可能なメモリの量はどれくらいですか? これを変更できる特別なスイッチや設定はありますか?
7 に答える
デフォルトで 2 GB。アプリケーションが大きなアドレス空間を認識している (/LARGEADDRESSAWARE にリンクされている) 場合、4 GB を取得します (3 GB ではありません。 http://msdn.microsoft.com/en-us/library/aa366778.aspxを参照してください) 。
多くのアプリケーションはポインターの最上位ビットがゼロであることに依存しているため、依然として 2 GB に制限されています。
/LARGEADDRESSAWARE とリンクする場合、4 GB からシステムが使用しているものを差し引いたもの。
さまざまな32ビットアプリケーションがある場合、wow64サブシステムはそれらを4Gを超えるメモリ内のどこにでもマップできるため、十分なメモリを備えた64ビットウィンドウでは、さらに多くの32ビットアプリケーションを実行できるという事実に誰も触れていないようです。ネイティブ32ビットシステムよりも。
32 ビット プロセスは、64 ビット OS でも同じ制約に制限されます。問題は、メモリ ポインタが 32 ビット幅しかないため、プログラムが 32 ビットを超えるメモリ アドレスを割り当て/解決できないことです。
Win64 で 32 ビット プロセスを実行する場合も、同じ基本的な制限があります。アプリは、Win32 のように見えるように最善を尽くす 32 のサブシステムで実行されます。これには、プロセスのメモリ制限が含まれます (ユーザーの場合は下位 2GB、OS の場合は上位 2GB)。
制限は2gまたは3gbではなく、32ビットの場合は4gbです。
人々がその3GBを考える理由は、実際に4GBのシステムRAMがある場合にOSが3GBを無料で表示するためです。
その合計RAMは4GBです。したがって、32ビットOSによって表示されるRAMの合計の一部としてカウントされる1GBのビデオカードがある場合。
4ギグではなく3ではなく2ではないですか?