Я пытаюсь научиться профилю памяти perl.Почему мой скрипт использует гораздо больше памяти при работе с mod_perl?
У меня очень простой скрипт hello-world Perl, и я хочу знать его размер в памяти.
Я использую утилиту GTop для измерения памяти (recommended in mod_perl book by Stas Beckman). GTop дает результаты, которые меня путают.
Когда я запускаю сценарий из командной строки, GTop говорит: 7M.
Когда я запускаю его под номером mod_perl
, GTop говорит: 54M.
Почему так много ?!
Почему память сценариев растет так далеко от mod_perl
? Или, может быть, я неправильно измеряю память? Как вы просматриваете память сценария perl?
Вот сценарий и его выход (я добавил запятые вручную легко читать цифры)
Выполнить из командной строки
> perl simple.pl size: 7,282688 share: 2,027520 diff: 5,255168
Пробег под mod_perl
size: 54,878208 share: 4,661248 diff: 50,216960
Scrip т simple.pl
#!/usr/bin/perl
use strict;
use warnings;
use CGI();
my $cgi = CGI->new;
print $cgi->header('text/plain');
use GTop;
print "Hello, world!\n";
my $m = GTop->new->proc_mem($$);
print "size: ".$m->size."\n";
print "share: ".$m->share."\n";
my $diff = $m->size - $m->share;
print "diff: $diff\n";