32bit版アプリケーションと64bit版アプリケーションのメモリ上限について
32bit版アプリケーションを改版する機会があったので、64bitへの移行を検討してみました。
32bit版アプリケーションで通常利用できるメモリの上限
通常、32bitアプリケーションで利用可能なメモリ容量は2GBです。
また、動的にメモリ確保できる領域は、プログラム本体やDLLが占有するメモリエリアを除いた容量になります。
32bit版アプリケーションで利用できるメモリの上限を増やす方法
32bit版アプリケーションでも「LAAオプション」を利用することで、メモリ上限を4GB弱まで増やす事が可能です。
・設定方法
対象のプロジェクトのプロパティで
構成プロパティ→リンカー→システム→大きいサイズのアドレス
のオプションを**『はい(/LARGEADDRESSAWARE)』**に設定するだけで利用可能です。
64bit版アプリケーションで通常利用できるメモリの上限
8TBものメモリを扱う事が可能です。
まとめ
x86Windowsとx64Windowsのメモリ上限比較表
x86Windows | x64Windows | |
---|---|---|
32bit版アプリケーション | デフォルト:2GB LAA有効かつ3GBスイッチ有効:3GB |
デフォルト:2GB LAA有効:4GB |
64bit版アプリケーション | 使用不可 | デフォルト(LAA有効):8TB LAA無効:2GB |
この結果から、32bitアプリケーションを64bitへ移行する事を決意しました。