0

私のスクリプトがデータをダウンロードするために〜300の並列ジョブを実行し、多くのメモリを消費しているため、優先度の高いプロセスが来るたびに、自動化されたジョブによって強制終了されるperlスクリプトがあります。スクリプトをスケジュールする前に追加のメモリを要求できるように、実行時にどれだけのメモリが必要かを把握したい、または何らかのツールを使用してコード内でより多くのメモリを使用する部分を知ることができれば、最適化できますそのためのコード。

4

1 に答える 1

1

質問に対するOPのコメントに関して、メモリ使用量を最小限に抑えたい場合は、データを一度に1行/行ずつ収集して追加してください。すべてを一度に変数に集める場合は、すべてを一度にメモリに保存する必要があることを意味します。

質問自体に関しては、Perlコードを(300の個別のインスタンスを実行するのではなく)一度だけ実行してforkから、個々のワーカープロセスを作成することが可能かどうかを調べたい場合があります。の場合fork、子プロセスは無関係のプロセスよりもはるかに効率的に親とメモリを共有するため、たとえば、300コピーではなくPerlバイナリのコピーを1つだけメモリに含める必要があります。

于 2013-02-13T15:27:59.650 に答える