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