如何在Windows上获取PHP中每个CPU核心的负载?

如何在Windows上获取PHP中每个CPU核心的负载?,php,windows,load,wmi,core,Php,Windows,Load,Wmi,Core,有没有办法做到这一点? 我尝试使用WMI,以及Win32_PerfRawData_PerfOS_处理器类,我最终得到了PercentProcessorTime和Timestamp_PerfTime,这将需要睡眠一段时间来计算百分比,但这不是我需要的,我需要的是不需要PHP等待几秒钟的东西,它应该几乎立即打印出负载一种方法是让另一个程序持续检查并记录处理器负载,PHP可以直接读取这些值。日志记录可能会有一点延迟,但不会像几秒钟那样 您可能可以在一个单独的PHP脚本中实现这一点。只需确保在检查之间睡

有没有办法做到这一点?
我尝试使用
WMI
,以及
Win32_PerfRawData_PerfOS_处理器
类,我最终得到了
PercentProcessorTime
Timestamp_PerfTime
,这将需要睡眠一段时间来计算百分比,但这不是我需要的,我需要的是不需要PHP等待几秒钟的东西,它应该几乎立即打印出负载

一种方法是让另一个程序持续检查并记录处理器负载,PHP可以直接读取这些值。日志记录可能会有一点延迟,但不会像几秒钟那样


您可能可以在一个单独的PHP脚本中实现这一点。只需确保在检查之间睡眠()一段时间,否则处理器读取脚本会立即将处理器推到最大负载。

您可以使用,记录CPU活动,然后通过PHP访问这些日志文件?在帖子中也有其他建议,比如,建议尝试一下。

我知道这是一篇老文章,但不久前我也处于同样的位置,但我还是设法找到了答案

而不是使用

Win32_PerfRawData_PerfOS_处理器

使用

Win32\u性能格式化数据\u性能处理器

比如说

$data['core']  = array();
$wmi           = new COM("winmgmts:\\");
$cpu_cores     = $wmi->execquery("SELECT PercentProcessorTime FROM Win32_PerfFormattedData_PerfOS_Processor");

foreach ($cpu_cores as $core) {
    $data['core'][] = $core->PercentProcessorTime;
}

// If CPU Is A Dual Core 
echo $data['core'][0].'%'; // CORE 1 LOAD
echo $data['core'][1].'%'; // CORE 2 LOAD
echo $data['core'][2].'%'; // TOTAL CPU LOAD

// If CPU Is A Quad Core 
echo $data['core'][0].'%'; // CORE 1 LOAD
echo $data['core'][1].'%'; // CORE 2 LOAD
echo $data['core'][2].'%'; // CORE 3 LOAD
echo $data['core'][3].'%'; // CORE 4 LOAD
echo $data['core'][4].'%'; // TOTAL CPU LOAD

And So On 

我认为您可能需要寻找comet编程或长轮询,因为这两个巨人在php中用于实时更新和结果