90

Windows では、通常の状況では、32 ビット プロセスは 2GB の RAM (または boot.ini ファイルの特別なスイッチを使用すると 3GB) にしかアクセスできません。64 ビット オペレーティング システムで 32 ビット プロセスを実行する場合、使用可能なメモリの量はどれくらいですか? これを変更できる特別なスイッチや設定はありますか?

4

7 に答える 7

95

デフォルトで 2 GB。アプリケーションが大きなアドレス空間を認識している (/LARGEADDRESSAWARE にリンクされている) 場合、4 GB を取得します (3 GB ではありません。 http://msdn.microsoft.com/en-us/library/aa366778.aspxを参照してください) 。

多くのアプリケーションはポインターの最上位ビットがゼロであることに依存しているため、依然として 2 GB に制限されています。

于 2009-03-12T17:04:38.260 に答える
21

/LARGEADDRESSAWARE とリンクする場合、4 GB からシステムが使用しているものを差し引いたもの。

もちろん、そのフラグを設定する場合は、ポインター演算にさらに注意する必要があります。

于 2009-03-12T17:03:37.407 に答える
14

さまざまな32ビットアプリケーションがある場合、wow64サブシステムはそれらを4Gを超えるメモリ内のどこにでもマップできるため、十分なメモリを備えた64ビットウィンドウでは、さらに多くの32ビットアプリケーションを実行できるという事実に誰も触れていないようです。ネイティブ32ビットシステムよりも。

于 2013-01-22T22:09:43.563 に答える
7

32 ビット プロセスは、64 ビット OS でも同じ制約に制限されます。問題は、メモリ ポインタが 32 ビット幅しかないため、プログラムが 32 ビットを超えるメモリ アドレスを割り当て/解決できないことです。

于 2009-03-12T17:04:11.913 に答える
-1

Win64 で 32 ビット プロセスを実行する場合も、同じ基本的な制限があります。アプリは、Win32 のように見えるように最善を尽くす 32 のサブシステムで実行されます。これには、プロセスのメモリ制限が含まれます (ユーザーの場合は下位 2GB、OS の場合は上位 2GB)。

于 2009-03-12T17:03:45.300 に答える
-12

制限は2gまたは3gbではなく、32ビットの場合は4gbです。

人々がその3GBを考える理由は、実際に4GBのシステムRAMがある場合にOSが3GBを無料で表示するためです。

その合計RAMは4GBです。したがって、32ビットOSによって表示されるRAMの合計の一部としてカウントされる1GBのビデオカードがある場合。

4ギグではなく3ではなく2ではないですか?

于 2012-05-14T12:27:41.517 に答える