Если вы используете ActivePerl, некоторые из этих решений не будут работать. Я собрал вместе кое-что, что, по моему мнению, должно работать из коробки в ActivePerl, но это не было проверено менее чем за 5.10, поэтому ваш пробег может отличаться. Как ответил Пакс, вы можете получить разные цифры в зависимости от того, что вы просите, то есть MaximumWorkingSetSize
против WorkingSetSize
и т. Д.
use Win32::OLE qw/in/;
sub memory_usage() {
my $objWMI = Win32::OLE->GetObject('winmgmts:\\\\.\\root\\cimv2');
my $processes = $objWMI->ExecQuery("select * from Win32_Process where ProcessId=$$");
foreach my $proc (in($processes)) {
return $proc->{WorkingSetSize};
}
}
print 'Memory usage: ', memory_usage(), "\n";