-1

CLI を使用して処理している大量のデータがあります。

スクリプトでは、データは foreach サイクルを通過します。

しかし、繰り返しのたびに、メモリ消費量はますます大きくなっています。

なぜこうなった?すべての var がループ内で再割り当てされるため、メモリ リークがあってはなりません。すべての反復の最後に var null を設定しようとしましたが、役に立ちませんでした。

ループでは、オブジェクト (ActiveRecord) を使用し、DB を操作します。

最初はスクリプトは非常に高速に動作し (1 秒あたり約 10 回の反復)、最終的にはそのパフォーマンスは 1 秒あたり 1 回未満の反復になります。

ありがとう。

4

1 に答える 1

1

あなたの答えはドキュメントでここにあると思います-ガベージコレクターは、毎回ではなく、時々起動されます。

于 2013-07-30T09:55:20.883 に答える