-qmaxmem
説明
メモリーを大量に消費する特定の最適化のローカル・テーブルのための最適化プログラムによって使用されるメモリーの量を制限する。メモリー・サイズの制限はキロバイト単位で指定されます。
構文

>>- -q--maxmem--=--size----------------------------------------><
デフォルト
- -O2 最適化が有効な場合、maxmem=8192。
- -O3 以上の最適化が有効な場合、maxmem=-1。
注
- size の値を -1 にすると、制限について検査されることなく、
最適化ごとに必要な量のメモリーが使用できるようになります。コンパイル中のソース・ファイル、ソース内のサブプログラムのサイズ、
マシン構成、およびシステムのワークロードによっては、
この量が使用可能なシステム・リソースを超えてしまう場合があります。
- -qmaxmem によって設定される制限は、
コンパイラー全体ではなく、特定の最適化のためのメモリーの量です。 コンパイル処理全体で必要となるテーブルは、
この制限の影響を受けないため、この制限には含まれません。
- コンパイラーが制限以下のメモリーしか必要としない場合は、
大きい制限を設定してもソース・ファイルのコンパイルに悪影響は及びません。
- 最適化の範囲を制限しても、
結果として得られるプログラムが必ずしも遅くなるわけではありません。単に、
パフォーマンスを向上させるすべての機会を検出する前にコンパイラーが終了する場合があるだけです。
- 制限を増加しても、結果として得られるプログラムが必ずしも高速になるわけではありません。単に、パフォーマンスを向上させる機会がある場合にコンパイラーがその機会を検出しやすくなるだけです。
コンパイル中のソース・ファイル、ソース内のサブプログラムのサイズ、マシン構成、およびシステムのワークロードによっては、制限の設定を高くしすぎると、ページ・スペースがすべて使用されてしまう可能性があります。
特に、-qmaxmem=-1 を指定すると、
コンパイラーがストレージを無制限に使用できるようになるので、最悪の場合には、
最も優れた装備を持つマシンのリソースでさえも使用し尽くしてしまうおそれがあります。
例
ローカル・テーブルに指定されるメモリーが 16384 キロバイトになるように myprogram.C をコンパイルするには、以下のように入力します。
xlc++ myprogram.C -qmaxmem=16384
関連情報