您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

php在windows环境下获得cpu内存实时使用率

2024/10/21 12:41:40发布35次查看
这篇文章主要介绍了php在windows环境下获得 cpu 内存实时使用率的相关资料,非常不错,具有参考和学习php的价值,对php感兴趣的朋友可以参考下本篇文章
后台实时监控服务器的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内存实时使用率,希望对大家有所帮助!!
php相关推荐:
php+redis实现抢购功能
前面我们和大家分享了php和redis实现商城秒杀功能代码分享,本文主要为大家详细介绍......
php如何处理抢购类功能的高并发请求
本文主要和大家详细介绍了php处理抢购类功能的高并发请求,具有一定的参考价值......
php中offset特征造成绕过漏洞解决方法
本文主要给大家介绍了关于由php中字符offset特征造成的绕过漏洞的相关资料,文中不仅......
php代码实现购物车保存周期为1天
购物车类 cookies 保存,保存周期为1天 注意:浏览器必须支持cookie才能够使用。本文......
以上就是php在windows环境下获得cpu内存实时使用率的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product