ファイルを 1 行ずつ読み込んでいる間、メモリを積極的に解放する必要がありますか? 例:
while (<FILE>) {
my $line = $_;
<process line>
undef($line);
}
$line 変数を「未定義」にすることは、メモリ消費を削減するための良いオプションですか?
ファイルを 1 行ずつ読み込んでいる間、メモリを積極的に解放する必要がありますか? 例:
while (<FILE>) {
my $line = $_;
<process line>
undef($line);
}
$line 変数を「未定義」にすることは、メモリ消費を削減するための良いオプションですか?
いいえ。Perl でのメモリ使用に関して何をすべきか (およびすべきでないか) の詳細については、perlfaq3 を参照してください。
明示的に undef するかどうかに関係なく、変数は次のループ反復が開始されるとすぐに解放されるため、違いはありません。
いいえ。ファイル内の行の長さが大幅に異なり、それらの長さの一部が膨大な場合 (たとえば、10 メガバイト以上) でない限り、それについて心配する必要はありません。
ループがメモリを消費しすぎているという証拠はありますか?