php在windows环境下获得cpu内存实时使用率(推荐)
发布时间:2020-12-13 21:43:35 所属栏目:Windows 来源:网络整理
导读:后台实时监控服务器的CUP与内存占用率的场景很常见,虽然没做过,但是着手写代码之前我真没想到会花2个多小时才最终实现。 网上虽然搜 PHP CUP 内存 使用率 这一类关键字出来的文章一大把,但大都是在Linux环境下,windows下只有提出靠cmd语句实现的观点,但
后台实时监控服务器的CUP与内存占用率的场景很常见,虽然没做过,但是着手写代码之前我真没想到会花2个多小时才最终实现。 网上虽然搜 PHP CUP 内存 使用率 这一类关键字出来的文章一大把,但大都是在Linux环境下,windows下只有提出靠cmd语句实现的观点,但少有实际直接可行的代码,辗转试了一遍 wmic,systeminfo 各种并不熟稔的cmd命令,并没有找到可行的方案,最终通过百度知道 的一篇答案找到利用vbs获取的实现方式,稍加改善,可以在windows环境下直接使用。 类代码 getFilePath(
'cpu_usage.vbs',"On Error Resume Next
Set objProc = GetObject("winmgmts:\.rootcimv2:win32_processor='cpu0'")
WScript.Echo(objProc.LoadPercentage)"
);
}
/**
* 获得总内存及可用物理内存JSON vbs文件生成函数
* @return string 返回vbs文件路径
*/
private function getMemoryUsageVbsPath()
{
return $this->getFilePath(
'memory_usage.vbs',"On Error Resume Next
Set objWMI = GetObject("winmgmts:\.rootcimv2")
Set colOS = objWMI.InstancesOf("Win32_OperatingSystem")
For Each objOS in colOS
Wscript.Echo("{""TotalVisibleMemorySize"":" & objOS.TotalVisibleMemorySize & ",""FreePhysicalMemory"":" & objOS.FreePhysicalMemory & "}")
Next"
);
}
/**
* 获得CPU使用率
* @return Number
*/
public function getCpuUsage()
{
$path = $this->getCupUsageVbsPath();
exec("cscript -nologo $path",$usage);
return $usage[0];
}
/**
* 获得内存使用率数组
* @return array
*/
public function getMemoryUsage()
{
$path = $this->getMemoryUsageVbsPath();
exec("cscript -nologo $path",$usage);
$memory = json_decode($usage[0],true);
$memory['usage'] = Round((($memory['TotalVisibleMemorySize'] - $memory['FreePhysicalMemory']) / $memory['TotalVisibleMemorySize']) * 100);
return $memory;
}
}
调用方式 getCpuUsage();
$memory = $info->getMemoryUsage();
echo "当前系统CPU使用率:{$cpu}%,内存使用率{$memory['usage']}%";
总结以上所述是小编给大家介绍的php在windows环境下获得cpu内存实时使用率,希望对大家有所帮助。程序员遇到问题都会上(编程之家52php.cn)查找问题解答方法!如果觉得站点还不错,随手转发给程序员朋友一下! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- MQTT代理窗口
- windows-server-2003 – 用户登录和注销服务器时的审核
- windows – 从不存在的域中删除计算机的命令
- windows-server-2008 – Windows Server 2008:如何判断用户
- windows-phone-7 – 不使用pin的Twitter身份验证
- windows-7 – 重新启动时将Windows 7计算机重置为干净状态
- windows-server-2008-r2 – 服务器08 RDP:如果已经连接了相
- 2018CCPC吉林赛区 D - The Moon
- windows-services – 更新Windows服务的过程?自动化还是手
- windows-mobile – Windows Mobile上的简易IPC?
推荐文章
站长推荐
- WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOp
- windows-server-2008 – Windows服务器需要多久重
- windows-server-2003 – 更改密码后无法访问服务
- windows – 使用标准USB闪存盘作为安全令牌
- windows-server-2008-r2 – 会影响复制速度的服务
- 如何在Windows XP上安排每日脚本运行?
- windows-server-2008 – 增加Kerberos票证的MaxT
- winapi – Windows API提取zip文件?
- 隐藏Microsoft Sql Server 2008R2及更高版本上的
- hyper-v – 每个VM的逻辑处理器数量?
热点阅读