有没有办法这样做?我尝试使用WMI
, 和Win32_PerfRawData_PerfOS_Processor
类,我最终得到了PercentProcessorTime
andTimestamp_PerfTime
这将需要睡眠一段时间来计算百分比,但这不是我需要的,我需要一些不需要 PHP 等待几秒钟的东西,它应该打印几乎立即摆脱负载
问问题
799 次
3 回答
0
一种方法是让另一个程序在 PHP 能够直接读取值的地方持续检查和记录处理器负载。日志记录可能会有一点延迟,但不会像几秒钟那样。
您可能可以在单独的 PHP 脚本中执行此操作。只需确保在检查之间睡眠()一小会儿,否则处理器读取脚本会立即将处理器推到最大负载。
于 2013-01-24T09:22:59.373 回答
0
我知道这是一篇旧帖子,但我前段时间处于相同的位置,但设法弄清楚了。
而不是使用
Win32_PerfRawData_PerfOS_Processor
利用
Win32_PerfFormattedData_PerfOS_Processor
例如
$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
于 2015-04-12T11:38:47.987 回答