2009-10-22 2 views
4

Я пытаюсь научиться профилю памяти 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?

Вот сценарий и его выход (я добавил запятые вручную легко читать цифры)

  1. Выполнить из командной строки

    > perl simple.pl 
    
    size: 7,282688 
    share: 2,027520 
    diff: 5,255168 
    
  2. Пробег под 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"; 

ответ

7

Я думаю, когда вы запускаете скрипт под mod_perl, вы получаете использование памяти вашего скрипта, а также mod_perl пользователя, а также веб-сервера Apache.

Смотрите также ответы на эти вопросы:

Смежные вопросы