/STACK (スタック割り当て)
/STACK:reserve[,commit]
解説
/STACK オプションは、スタックのサイズをバイト単位で指定します。 このオプションは、.exe ファイルのビルドだけに使用します。
reserve 値は、仮想メモリ内のスタック割り当ての合計サイズを指定します。 ARM、x86、および x64 コンピューターの場合、既定のスタック のサイズは 1 MB です。
commit は、オペレーティング システムによって解釈が異なります。 Windows WindowsRT では、一度に確保する物理メモリ量です。 仮想メモリがコミットされると、ページング ファイル内にメモリ空間が予約されます。 commit の値を大きく設定すると、アプリケーションに必要なスタック領域が増えたときに処理時間を節約できます。ただし、必要なメモリ量と起動時間が増えます。 ARM、x86、および x64 コンピューターの場合、既定のコミット値は 4 KB です。
引数 reserve と引数 commit の値は、10 進表記か C 言語表記で指定します。
別の方法としては、モジュール定義 (.def) ファイルの STACKSIZE ステートメントでスタックのサイズを設定することもできます。 両方を指定した場合、STACKSIZE はスタック割り当て (/STACK) オプションよりも優先します。 EDITBIN ツールを使用すると、.exe ファイルをビルドした後でスタック サイズを変更できます。
Visual Studio 開発環境でこのリンカー オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、「Visual C++ プロジェクトのプロパティの設定」を参照してください。
[リンカー] フォルダーを選択します。
[システム] プロパティ ページをクリックします。
次のいずれかのプロパティを変更します。
[スタックのコミット サイズ]
[スタックのサイズの設定]
このリンカーをコードから設定するには
- StackCommitSize プロパティおよび StackReserveSize プロパティを参照してください。