php在windows环境下获得cpu内存实时使用率(推荐)
网络编程 2021-07-05 08:24www.168986.cn编程入门
这篇文章主要介绍了php在windows环境下获得 cpu 内存实时使用率的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
后台实时监控服务器的CUP与内存占用率的场景很常见,虽然没做过,着手写代码之前我真没想到会花2个多小时才最终实现。
网上虽然搜 PHP CUP 内存 使用率 这一类关键字出来的文章一大把,但大都是在Linux环境下,windows下只有提出靠cmd语句实现的观点,但少有实际直接可行的代码,辗转试了一遍 wmic , systeminfo 各种并不熟稔的cmd命令,并没有找到可行的方案,最终通过百度知道 的一篇答案找到利用vbs获取的实现方式,稍加改善,可以在windows环境下直接使用。
类代码
class SystemInfoWindows { / 判断指定路径下指定文件是否存在,如不存在则创建 @param string $fileName 文件名 @param string $content 文件内容 @return string 返回文件路径 / private function getFilePath($fileName, $content) { $path = dirname(__FILE__) . "\\$fileName"; if (!file_exists($path)) { file_put_contents($path, $content); } return $path; } / 获得cpu使用率vbs文件生成函数 @return string 返回vbs文件路径 / private function getCupUsageVbsPath() { return $this->getFilePath( 'cpu_usage.vbs', "On Error Resume Next Set objProc = GetObject(\"winmgmts:\\\\.\\root\cimv2: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:\\\\.\\root\cimv2\") 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; } }
调用方式
$info = new SystemInfoWindows(); $cpu = $info->getCpuUsage(); $memory = $info->getMemoryUsage(); echo "当前系统CPU使用率{$cpu}%,内存使用率{$memory['usage']}%";
以上所述是长沙网络推广给大家介绍的php在windows环境下获得cpu内存实时使用率,希望对大家有所帮助,如果大家有任何疑问请给我留言,长沙网络推广会及时回复大家的。在此也非常感谢大家对狼蚁SEO网站的支持!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程