1

そうする方法はありますか?WMIWin32_PerfRawData_PerfOS_Processorクラスを使用してみましたが、パーセンテージを計算するためにしばらくスリープする必要があるPercentProcessorTimeandTimestamp_PerfTimeがありますが、それは私が必要とするものではありません.PHPを数秒待つ必要がないものが必要です.印刷する必要があります.ほぼ瞬時に負荷を軽減

4

3 に答える 3

0

1 つの方法は、PHP が値を直接読み取ることができる場所でプロセッサの負荷を継続的にチェックしてログに記録する別のプログラムを用意することです。ロギングにわずかな遅延が発生する可能性がありますが、数秒ほどではありません。

おそらく、別の PHP スクリプトでそれを行うことができます。チェックの合間に必ず sleep() を短時間実行してください。そうしないと、プロセッサの読み取りスクリプトがプロセッサをすぐに最大負荷に押し上げてしまいます。

于 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 に答える
0

XPerfを使用して CPU アクティビティをログに記録し、PHP 経由でそれらのログ ファイルにアクセスできますか? このようなスレッドには、Linfoを試してみることを提案する他の提案もあります。

于 2013-01-24T09:25:17.950 に答える