【问题标题】:Calculating Private Working set memory in perl在 perl 中计算私有工作集内存
【发布时间】:2014-09-13 23:42:15
【问题描述】:

我基本上是在尝试在 perl 中查询进程的私有工作集。
I have already refereed this post. 该解决方案在 win8/8.1 上运行良好,但由于某种原因,以下行在 win7x64 上不返回任何内容,我尝试使用 IDProcess 而不是 Name,它仍然不返回任何进程。

my $proc = $objWMI->ExecQuery("select * from Win32_Process where Name=\'notepad\'");

$objWMI = Win32::OLE->GetObject('winmgmts:\\\\.\\root\\cimv2');
$proc= $objWMI->ExecQuery("select * from Win32_PerfRawData_PerfProc_Process where Name=\'notepad\'");
foreach my $process (in($proc))
{
  print "abc";
  $out = $process->{WorkingSetPrivate};
}

所以这东西行不通。 在 perl 中查询进程的私有工作集大小有什么不同的方法吗?

【问题讨论】:

    标签: perl wmi wmi-query win32ole


    【解决方案1】:

    似乎在 Windows 7 64 位上,性能计数器已损坏。我终于创立了这个帖子Corrupt Performance Counter

    所以我以管理员身份启动 cmd 并执行了 lodctr /R(这基本上重置了您的性能计数器)。在此之后,我终于能够获得该过程,并且以下代码完美无缺:)

    my $proc = $objWMI->ExecQuery("select * from Win32_PerfRawData_PerfProc_Process where Name=\'notepad\'");
    

    【讨论】:

      猜你喜欢
      • 2011-02-06
      • 1970-01-01
      • 2011-04-15
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 2016-12-29
      • 1970-01-01
      • 2022-01-17
      相关资源
      最近更新 更多