/Zm (プリコンパイル済みヘッダーのメモリ割り当て制限の指定)

コンパイラがプリコンパイル済みヘッダーを構築するために割り当てるメモリの量を決定します。

構文

/Zmfactor

引数

factor
コンパイラがプリコンパイル済みヘッダーを構築するために使用するメモリの量を決定するスケール ファクターの割合。

引数 factor は、コンパイラが定義する作業バッファーの既定のサイズに対する割合です。 factor の既定値は 100 (パーセント) ですが、これを超える量も、これ未満の量も指定できます。

解説

Visual Studio 2015 より前のバージョンでは、C++ コンパイラはいくつかの独立したヒープを使用し、ヒープにはそれぞれ大きさの限界がありました。 現在では、コンパイラが必要に応じてヒープを合計ヒープ サイズ制限まで動的に拡張するので、プリコンパイル済みヘッダーを複数のアドレス範囲で構成することができます。 /Zm コンパイラ オプションを使用する必要はほとんどなくなりました。

/Zm コンパイラ オプションの使用時に、コンパイラがヒープ スペースを使い果たし、C1060 エラー メッセージを出力する場合は、メモリをとり過ぎている可能性があります。 /Zm オプションの削除を検討してください。

コンパイラが C1076 エラー メッセージを出力する場合、付随する C3859 メッセージは factor 引数を示します。これは、/Zm コンパイラ オプションを使って再コンパイルするときに使用する引数です。 このメッセージは、プリコンパイル済みヘッダーで #pragma hdrstop が使用されている場合にのみ重要です。 それ以外の場合は、Windows の仮想メモリ負荷の問題によって発生する誤ったエラーなので、/Zm オプションを使用するという推奨事項は無視してください。 代わりに、MSBUILD.EXE に対する /maxcpucount オプションと、CL.EXE に対する /MP オプションを組み合わせて使用する際に、並列プロセスの数を減らすことを検討してください。 詳しくは、プリコンパイル済みヘッダー (PCH) の問題と推奨事項に関する記事をご覧ください。

次の表は、factor 引数がメモリ割り当ての制限にどのように影響するかを示しています。 この表では、既定のプリコンパイル済みヘッダー バッファーのサイズが 75 MB と想定されています。

factor の値 メモリ割り当て制限
10 7.5 MB (メガバイト)
100 75 MB
200 150 MB
1000 750 MB
2000 1500 MB

メモリ割り当て制限を設定する別の方法

Visual Studio 開発環境で /Zm コンパイラ オプションを設定するには

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。

  2. [構成プロパティ]>[C/C++]>[コマンド ライン] プロパティ ページを選択します。

  3. [追加オプション] ボックスに /Zm コンパイラ オプションを入力します。

/Zm コンパイラ オプションをプログラムによって設定するには

関連項目

MSVC コンパイラ オプション
MSVC コンパイラのコマンド ライン構文