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 相关文章推荐
PHP5 安装方法
Oct 09 PHP
shopex中集成的站长统计功能的代码简单分析
Aug 11 PHP
关于二级目录拖拽排序的实现(源码示例下载)
Apr 26 PHP
PHP运行环境配置与开发环境的配置(图文教程)
Jun 04 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
Feb 03 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
Nov 16 PHP
php注册登录系统简化版
Dec 28 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
Apr 07 PHP
Windows2003下php5.4安装配置教程(IIS)
Jun 30 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
Sep 21 PHP
php微信公众平台开发(四)回复功能开发
Dec 06 PHP
基于laravel缓冲cache的用法详解
Oct 23 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
php中利用explode函数分割字符串到数组
2014/02/08 PHP
PHP实现根据时间戳获取周几的方法
2016/02/26 PHP
PHP面向对象学习之parent::关键字
2017/01/18 PHP
PHP封装的完整分页类示例
2018/08/21 PHP
用javascript控制iframe滚动的代码
2007/04/10 Javascript
JQery 渐变图片导航效果代码 漂亮
2010/01/01 Javascript
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
解决js正则匹配换行问题实现代码
2012/12/10 Javascript
javascript相关事件的几个概念
2015/05/21 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
老生常谈javascript变量的命名规范和注释
2016/09/29 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
2016/12/27 Javascript
angularjs中使用ng-bind-html和ng-include的实例
2017/04/28 Javascript
bootstrap表格内容过长时用省略号表示的解决方法
2017/11/21 Javascript
js中getBoundingClientRect的作用及兼容方案详解
2018/02/01 Javascript
vue-cli axios请求方式及跨域处理问题
2018/03/28 Javascript
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
小程序页面动态配置实现方法
2019/02/05 Javascript
[51:53]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第二场 1月24日
2021/03/11 DOTA
Python translator使用实例
2008/09/06 Python
Python编写检测数据库SA用户的方法
2014/07/11 Python
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
解决Python 遍历字典时删除元素报异常的问题
2016/09/11 Python
python 迭代器和iter()函数详解及实例
2017/03/21 Python
python 读取文件并把矩阵转成numpy的两种方法
2019/02/12 Python
Pytoch之torchvision.transforms图像变换实例
2019/12/30 Python
Python基础类继承重写实现原理解析
2020/04/03 Python
Python将字典转换为XML的方法
2020/08/01 Python
用 python 进行微信好友信息分析
2020/11/28 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)
2017/01/05 HTML / CSS
Canvas实现贝赛尔曲线轨迹动画的示例代码
2019/04/25 HTML / CSS
英国时尚女装购物网站:Missguided
2018/08/23 全球购物
保安自我鉴定范文
2013/12/08 职场文书
汉语言文学毕业生自荐信范文
2014/03/24 职场文书
2016十一国庆节慰问信
2015/12/01 职场文书