Должен ли я активно освобождать память при чтении файла построчно в Perl? - PullRequest
2 голосов
/ 06 декабря 2009

Стоит ли агрессивно освобождать память при чтении файла построчно? Пример:

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

«Отменить определение» переменной $ line - хороший вариант для уменьшения потребления памяти?

Ответы [ 3 ]

11 голосов
/ 06 декабря 2009

Нет. Смотрите perlfaq3, чтобы узнать больше о том, что вы должны (и не должны) делать в отношении использования памяти в Perl.

9 голосов
/ 06 декабря 2009

Это не должно иметь никакого значения, поскольку переменная будет освобождена, как только начнется следующая итерация цикла, независимо от того, явно вы ее отменяли или нет.

5 голосов
/ 07 декабря 2009

Нет. Если строки в вашем файле не имеют разной длины, а некоторые из них имеют огромную длину (скажем, 10 мегабайт и более), зачем даже беспокоиться об этом?

Есть ли доказательства того, что цикл потребляет слишком много памяти?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...