[Moscow.pm] Оптимизация использования памяти

Dmitry E. Oboukhov unera на debian.org
Вт Май 12 00:02:13 PDT 2009


А вот кто на майперле мог бы прочитать лекцию по такому вопросу:

вот имеем скажем простенький вариант скрипта:

#!/usr/bin/perl

use warnings;
use strict;

sub get_set
{
    my @set = map { int rand 1000 } 0 .. 50;
    return \@set;
}

{
    my $set = get_set;
    printf "%s\n", join ", ", @$set;
    redo;
}


Обычный типичный вариант: некая функция возвращает некий набор
значений в виде массива или ссылки на него, который она строит
в результате своей работы.


Так вот, если запустить данный скрипт, то мы видим что в процессе
работы он ест все больше и больше памяти.

игры вида "добавим блок чтобы $set выходил из области видимости"
и всякие undef $set, @$set, циклы while/for итп к хорошему
результату не приводят

Кто копал в этой области подскажите что почитать, ну а заодно может
кто-то на майперле на эту тему сделает какое-то сообщение?
было бы весьма интересно

PS: на месте get_set если представить обычный new для объекта,
то пример будет вообще классическим.

--
... mpd is off

. ''`.                               Dmitry E. Oboukhov
: :’  :   email: unera на debian.org jabber://UNera@uvw.ru
`. `~’              GPGKey: 1024D / F8E26537 2006-11-21
  `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537
----------- следущая часть -----------
A non-text attachment was scrubbed...
Name: отсутствует
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20090512/edae60db/attachment.bin>


Подробная информация о списке рассылки Moscow-pm