Help us understand the problem. What is going on with this article?

C++アプリケーションのメモリ上限について

More than 1 year has passed since last update.

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へ移行する事を決意しました。

s_Pure
AIやDevOpsに興味があります(^O^)/ Python・データ分析・クラウド関連・Unity・Webコーディングを最近は触っています
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away