私はDelphiアプリケーションを開発するチームのメンバーです。メモリ要件は膨大です。500 MBは正常ですが、メモリ不足の例外が発生する場合があります。その場合に割り当てられるメモリは、通常1000〜1700MBです。
もちろん64ビットコンパイラが必要ですが、それは今は起こりません(そして、それが起こった場合は、Unicodeに変換する必要がありますが、それは別の話です...)。
私の質問は、64ビット環境で実行しているときにプロセスごとに2GBのメモリ制限があるのはなぜですか。ポインタは32ビットなので、4GBが適切な制限だと思います。Delphi2007を使用しています。
編集: したがって、DelphiでIMAGE_FILE_LARGE_ADDRESS_AWAREフラグを設定した場合:
{$SetPeFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}
そして、結果のExeファイルをWindows Server 2003 x64で実行すると、アプリケーションは4 GBをアドレス指定できますか?
- boot.iniで/3GBスイッチを設定する必要がありますか?
- これを試しましたが、32ビットのWindows Server 2003で、Windowsリソースが制限されているようです。ログにGDIErrorがある「メモリ不足」の例外がさらにありました。しかし、64ビットOSで実行すると、これは消えるかもしれません。
