1つのプロセスでアドレス空間を使用できる最大メモリ容量を確認する方法

32ビットの実行可能ファイルにLARGEADDRESSAWAREスイッチが指定されていない場合、使用するプロセスは2GBのメモリ(使用可能または使用可能)になります。実行可能ファイルのPEフラグにスイッチLARGEADDRESSAWAREが存在する場合、この制限は(私が間違っていると私を修正する)ことができます:

  • /3GBスイッチで32ビットWindowsを起動しなかった場合の2GB
  • /3GBスイッチで32ビットWindowsを起動した場合の3GB
  • プロセスが32ビットプロセスとしてWindows 64ビットOSで実行される場合、最大4GBまでです。

私の質問は:どのように(LARGEADDRESSAWAREフラグの有無にかかわらず)このメモリの制限を決定することができますか? sidenoteとして:上記の可能性の列挙は正しいですか?

注:私はプロセスが使用しているメモリの量に興味はありません。また、外部効果による制限でもなく、理想的な場合に割り当てることができるメモリの最大量にも関心があります。

3

1 答え

最良の方法は、 GetSystemInfo を開き、 lpMinimumApplicationAddress および lpMaximumApplicationAddress をクリックします。使用可能なアドレス可能なメモリ空間の合計を取得するには、後者から前者を単純に差し引くことができます。

さまざまな可能性の3つの箇条書きポイントが正しいです。

3
追加された