Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Как подсчитать потребление памяти скриптом?


Автор: Fulldozer 1.4.2011, 06:49
Всем привет!
Я пишу скрипт, в котором есть процедура с рекурсивным алгоритмом.
Вот кусок кода чтобы было понятно о чем речь.
Код

my @list = (
    { id => 1, level => 0, parent_id => 0 },
    { id => 2, level => 1, parent_id => 1 },
    { id => 3, level => 1, parent_id => 1 },
    { id => 4, level => 1, parent_id => 1 },
    { id => 5, level => 1, parent_id => 1 },
    { id => 6, level => 1, parent_id => 1 },

);
my @ordered;

sub get_tree {
 my ($tree,$parent_id) = @_;
 foreach my $row ( @$tree ) {
    if ( $row->{parent_id} == $parent_id ) {
        push @ordered, $row;
        get_tree($tree,$row->{id})
    }
 }
}

get_tree(\@list,1);

Насколько я понимаю, если размер списка 64Кб ( к примеру ), то при глубине рекурсии = 10 во время выполнения get_tree будет занято минимум 640Кб.

Пробовал я Devel::NYTProf, но он память не отслеживает.
Пробовал сделать по статье http://perl.active-venture.com/pod/perldebguts-perlmemory.html, но видимо недопонял авторов.

Короче пока писал этот пост, нашел модуль Memory::Usage
http://cpan.uwinnipeg.ca/htdocs/Memory-Usage/Memory/Usage.html#SYNOPSIS

Тему можно считать закрытой, а пост пусть остается. 


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)