Я хочу отслеживать использование памяти при запуске программы в Perl, поэтому, если объем памяти, используемой текущей программой, превышает пороговое значение, я применяю подход A, в противном случае применяю подход B.
Любойесть идеи?
Я нашел этот скрипт из http://www.perlmonks.org/?node_id=235757:
#!/usr/bin/perl use Proc::ProcessTable; sub memory_usage { my $t = new Proc::ProcessTable; foreach my $got ( @{$t->table} ) { next if not $got->pid eq $$; return $got->size; } } print 'memory: '. memory_usage()/1024/1024 ."\n";
Используйте GTop, если хотите что-то более портативное.В руководстве mod_perl есть примеры использования .
GTop
mod_perl
Это будет сильно зависеть от ОС.Для Linux мне удалось найти модуль CPAN Sys::Statistics::Linux, который может прочитать /proc и получить данные о вашем текущем процессе.На случай, если вы работаете на Solaris, есть Solaris::Procfs.Я ничего не могу найти для Windows.
Sys::Statistics::Linux
/proc
Solaris::Procfs
Обновление : Поскольку вы являетесь в Solaris, вам определенно нужно Solaris::Procfs.