2

ファイルを 1 行ずつ読み込んでいる間、メモリを積極的に解放する必要がありますか? 例:

while (<FILE>) {
  my $line = $_;
  <process line>
  undef($line);
}

$line 変数を「未定義」にすることは、メモリ消費を削減するための良いオプションですか?

4

3 に答える 3

11

いいえ。Perl でのメモリ使用に関して何をすべきか (およびすべきでないか) の詳細については、perlfaq3 を参照してください。

于 2009-12-05T23:59:47.150 に答える
9

明示的に undef するかどうかに関係なく、変数は次のループ反復が開始されるとすぐに解放されるため、違いはありません。

于 2009-12-05T23:39:51.213 に答える
5

いいえ。ファイル内の行の長さが大幅に異なり、それらの長さの一部が膨大な場合 (たとえば、10 メガバイト以上) でない限り、それについて心配する必要はありません。

ループがメモリを消費しすぎているという証拠はありますか?

于 2009-12-06T21:40:12.960 に答える