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

Ruslan Zakirov ruslan.zakirov на gmail.com
Вт Май 12 00:15:51 PDT 2009


2009/5/12 Dmitry E. Oboukhov <unera на debian.org>:
> А вот кто на майперле мог бы прочитать лекцию по такому вопросу:
>
> вот имеем скажем простенький вариант скрипта:
>
> #!/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;
> }
>
>
> Обычный типичный вариант: некая функция возвращает некий набор
> значений в виде массива или ссылки на него, который она строит
> в результате своей работы.

5.10? По слухам, в нем есть утечка. В 5.8.9 вполне себе вращается и
очень долго без проблем.

> Так вот, если запустить данный скрипт, то мы видим что в процессе
> работы он ест все больше и больше памяти.
>
> игры вида "добавим блок чтобы $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
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
>
> iEYEARECAAYFAkoJHvMACgkQq4wAz/jiZTfo2QCgzTy0kqi+LWBE34EqhHFzSzRO
> PLwAoM2ZAsqNmpJSYHpy+vuFHuREnvhk
> =wMdF
> -----END PGP SIGNATURE-----
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>



-- 
Best regards, Ruslan.


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