大規模な手続き (数千行のコードからなる手続き) に対して -x03 または -x04 を指定して最適化をすると、途方もない大きさのメモリーが必要になり、マシンのパフォーマンスが低下することがあります。
こうしたパフォーマンスの低下を防ぐには、limit コマンドを使用して、1 つのプロセスで使用できる仮想メモリーの大きさを制限します (csh(1) のマニュアルページを参照)。たとえば、使用できる仮想メモリーを 16M バイトに制限するには、次のコマンドを使用します。
demo% limit datasize 16M
このコマンドにより、データ領域が 16M バイトに達したときに、オプティマイザがメモリーを回復しようとします。
マシンが使用できるスワップ領域の合計容量を超える値は、制限値として指定することはできません。制限値は、大規模なコンパイル中でもマシンの通常の使用ができるぐらいの大きさにしてください。
最良のデータサイズ設定値は、要求する最適化のレベルと実メモリーの量、仮想メモリーの量によって異なります。
実際のスワップ空間に関する情報を得るには、swap -l と入力します。
実際の実メモリーに関する情報を得るには、dmesg | grep mem と入力します。