[請益] 取得CPU使用率
因為要在Windows上要取得CPU的使用率
故參考phpSysInfo(http://phpsysinfo.sourceforge.net/)
網頁部份透過jQuery每秒取得一次CPU使用率
經過長時間觀察發現httpd消耗的記憶體會慢慢增加
把這個部分的javascript code註解掉則不會
因為HTTP Request的部分跟一般沒什麼不同
所以懷疑是不是PHP使用new COM()的關係??
用了unset似乎也沒有用(記憶體還是會上升)
還請板上的大大指導 謝謝
PHP Source Code:
function loadavg ()
{
$objLocator = new COM("WbemScripting.SWbemLocator");
$wmi = $objLocator->ConnectServer();
$buffer = _GetWMI( $wmi , "Win32_Processor", array( "LoadPercentage" ) );
$cpuload = array();
for( $i = 0; $i < count( $buffer ); $i++ ) {
$cpuload['avg'][] = $buffer[$i]["LoadPercentage"];
}
unset($objLocator);
return $cpuload['avg'];
}
function _GetWMI($wmi, $strClass, $strValue = array() ) {
$objWEBM = $wmi->Get($strClass);
if( PHP_VERSION < 5 ) {
$objProp = $objWEBM->Properties_;
$arrProp = $objProp->Next($objProp->Count);
$objWEBMCol = $objWEBM->Instances_();
$arrWEBMCol = $objWEBMCol->Next($objWEBMCol->Count);
} else {
$arrProp = $objWEBM->Properties_;
$arrWEBMCol = $objWEBM->Instances_();
}
foreach($arrWEBMCol as $objItem)
{
@reset($arrProp);
$arrInstance = array();
foreach($arrProp as $propItem)
{
eval("\$value = \$objItem->" .$propItem->Name .";");
if( empty( $strValue ) ) {
$arrInstance[$propItem->Name] = trim($value);
} else {
if( in_array( $propItem->Name, $strValue ) ) {
$arrInstance[$propItem->Name] = trim($value);
}
}
}
$arrData[] = $arrInstance;
}
unset($objWEBM);
return $arrData;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.251.61.85
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章