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


Posted in PHP onFebruary 08, 2018

后台实时监控服务器的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 和 HTML
Oct 09 PHP
php中变量及部分适用方法
Mar 27 PHP
php 正确解码javascript中通过escape编码后的字符
Jan 28 PHP
PHP中数组的三种排序方法分享
May 07 PHP
PHP session_start()问题解疑(详细介绍)
Jul 05 PHP
smarty模板引擎中变量及变量修饰器用法实例
Jan 22 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
Mar 18 PHP
ThinkPHP中limit()使用方法详解
Apr 19 PHP
PHP中文字符串截断无乱码解决方法
Oct 10 PHP
php+ajax无刷新上传图片的实现方法
Dec 06 PHP
[原创]php正则删除html代码中class样式属性的方法
May 24 PHP
PHP中的日期时间处理利器实例(Carbon)
Jun 09 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 #PHP
php处理抢购类功能的高并发请求
Feb 08 #PHP
php+redis实现商城秒杀功能
Nov 19 #PHP
php+redis消息队列实现抢购功能
Feb 08 #PHP
PHP多线程模拟实现秒杀抢单
Feb 07 #PHP
PHP设计模式之装饰器模式实例详解
Feb 07 #PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 #PHP
You might like
我的论坛源代码(九)
2006/10/09 PHP
使用Codeigniter重写insert的方法(推荐)
2017/03/23 PHP
Laravel学习教程之路由模块
2017/08/18 PHP
php之可变函数的实例详解
2017/09/13 PHP
PHP压缩图片功能的介绍
2019/03/21 PHP
javascript语句中的CDATA标签的意义
2007/05/09 Javascript
jquery validate使用攻略 第四步
2010/07/01 Javascript
js数字转换为float,取N位小数
2014/02/08 Javascript
js获取 type=radio 值的方法
2014/05/09 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
2014/09/01 Javascript
Node.js实现批量去除BOM文件头
2014/12/20 Javascript
javascript基础知识分享之类与函数化
2016/02/13 Javascript
JS使用正则表达式过滤多个词语并替换为相同长度星号的方法
2016/08/03 Javascript
Vue.js绑定HTML class数组语法错误的原因分析
2016/10/19 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
2017/07/18 Javascript
基于Vue插入视频的2种方法小结
2019/04/02 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
2019/09/20 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
2020/06/22 Javascript
在Python的Flask框架中实现全文搜索功能
2015/04/20 Python
几种实用的pythonic语法实例代码
2018/02/24 Python
Python File(文件) 方法整理
2019/02/18 Python
计算机二级python学习教程(2) python语言基本语法元素
2019/05/16 Python
pytorch之添加BN的实现
2020/01/06 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
2020/04/07 Python
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
Antonioli美国在线商店:时尚前卫奢华
2019/07/29 全球购物
设计专业自荐信
2014/06/19 职场文书
中专毕业生的自荐书
2014/07/01 职场文书
汽车技术服务与贸易专业求职信
2014/07/20 职场文书
计划生育证明书写要求
2014/09/17 职场文书
助学金感谢信
2015/01/20 职场文书
刘公岛导游词
2015/02/05 职场文书
副总经理岗位职责范本
2015/04/08 职场文书
社会实践活动总结格式
2015/05/11 职场文书
副校长2015年教育教学工作总结
2015/07/27 职场文书