如何从Windows上的PHP脚本获取当前的cpu负载?

时间:2015-02-12 16:43:52

标签: php

php脚本如何以百分比形式获得当前的cpu负载? 在linux平台上,我们有sys_loadavg()[0],这在Windows上不存在。

2 个答案:

答案 0 :(得分:2)

到目前为止,我知道有三种方法:

COM通话

    $com = new COM('winmgmts:{impersonationLevel=impersonate}');
    $cpus = $com->execquery('SELECT LoadPercentage FROM Win32_Processor');
    foreach ($cpus as $cpu) { $load = $cpu->LoadPercentage; break; }

com_dotnet 扩展名。

控制台呼叫wmic

    exec('wmic cpu get LoadPercentage', $p);
    return $p[2];

控制台呼叫typeperf

    $_ENV['typeperfCounter'] = '\processor(_total)\% processor time';
    exec('typeperf -sc 1 "'.$_ENV['typeperfCounter'].'"', $p);
    $line = explode(',', $p[2]);
    $load = trim($line[1], '"');
  1. 注意:$ _ENV ['typeperfCounter']应根据系统区域设置进行设置。对于ru_RU,它是

    $_ENV['typeperfCounter'] = '\Процессор(_total)\% загруженности процессора';
    
  2. 所有它们运行得非常慢(老实说,我认为它们会阻止当前线程的执行1秒以测量负载)。

答案 1 :(得分:0)

在这里查看我的回复。 与Windows / Linux操作系统兼容的功能,经过测试。

在Linux中返回一个包含3个值的数组 在Windows中返回1值的数组

How to get CPU usage and RAM usage without exec?