2013-02-08 2 views
3

Я использую следующий перл программа, которая использует WMI класса Win32_Process для определения использования памяти процессавычисления частного Рабочий набор памяти от методов класса WMI

use strict; 
use warnings; 
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 Name=\'notepad.exe\'"); 
    my $memory = 0; 

    foreach my $proc (in($processes)) 
    { 
     $memory = $memory + $proc->{WorkingSetSize}; 
    } 
    return $memory; 
} 
print 'Memory usage: ', memory_usage(), "\n"; 

WMI класс Win32_Process и его свойства приведены в MSDN here

Проблема заключается в том, что он вычисляет Working Set Memory и я хочу, чтобы вычислить собственную память Рабочей, для которого никакого свойства не определен на странице, связанную

есть ли какой-нибудь способом я могу вычислить Private Рабочая память для этого класса?

+0

И я уже использовал PrivatePageCount собственность, но она не возвращает то, что показано в PrivateWorkingSetMemory в диспетчере задач –

+0

http://msdn.microsoft.com/en-us/library/aa965225%28VS .85% 29.aspx – sergmat

ответ

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