2013-02-08 87 views
3

我使用它使用WMI類Win32_Process的確定進程的內存使用情況的下列Perl程序設置內存從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

給出

問題是,它計算工作組記憶,我想計算私人工作集的內存,對於沒有屬性的鏈接頁面

定義是有一些辦法可以計算出私人這個班的工作記憶?

+0

,我已經使用了PrivatePageCount屬性,但它不返回什麼是顯示在PrivateWorkingSetMemory在任務管理器 – 2013-02-08 13:21:31

+0

http://msdn.microsoft.com/en-us/library/aa965225%28VS 0.85%29.aspx – sergmat 2013-02-08 20:02:46

回答