2011年3月27日日曜日

64bit Windowsにおけるアプリケーションのメモリ上限

x86(≒32-bit Windows)での上限 64-bit Windowsでの上限
32bitアプリケーション 2GB

3GBへ拡張可能(IFLAAかつ4GT)
2GB IFLAAオフ(デフォルト)

4GB IFLAAオン
64bitアプリケーション使用不可 IFLAAオン(デフォルト)
x64: 8TB
Intel IPF: 7TB

2GB IFLAAオフ
ソース:Memory Limits for Windows Releases
IFLAA=IMAGE_FILE_LARGE_ADDRESS_AWARE

表の通り32bitアプリケーションは、デフォルトでは2GBしかメモリを使うことができません。
利用可能なメモリを拡張するには、以下の2つを満たす必要があります。

1. 32bit Windowsで、4GT(3GBスイッチ)が有効であること。または、64bit Windowsであること。
2. アプリケーションでIMAGE_FILE_LARGE_ADDRESS_AWARE(/LARGEADDRESSAWARE)が有効になっていること。

実際のやり方については、検索すれば詳しいサイトがたくさんヒットしますので、そちらを参照すると良いでしょう。

キーワードとしては、
1. 「4GT」「3GBスイッチ」
2. 「IMAGE_FILE_LARGE_ADDRESS_AWARE」「/LARGEADDRESSAWARE」「editbin.exe」