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 相关文章推荐
动态新闻发布的实现及其技巧
Oct 09 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
Jun 06 PHP
php数组去重实例及分析
Nov 26 PHP
使用php显示搜索引擎来的关键词
Feb 13 PHP
PHP中获取时间的下一周下个月的方法
Mar 18 PHP
windows7配置Nginx+php+mysql的详细教程
Sep 04 PHP
php封装的验证码类分享
Feb 26 PHP
php图像验证码生成代码
Jun 08 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
Aug 17 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
Dec 07 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 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 使用redis简单示例分享
2015/03/05 PHP
php使用PDO获取结果集的方法
2017/02/16 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
php写app用的框架整理
2019/09/29 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
2020/03/23 PHP
PHP Web表单生成器案例分析
2020/06/02 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
用 JavaScript 迁移目录
2006/12/18 Javascript
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
jquery默认校验规则整理
2014/03/24 Javascript
js使用ajax读博客rss示例
2014/05/06 Javascript
iframe中使用jquery进行查找的方法【案例分析】
2016/06/17 Javascript
关于微信上网页图片点击全屏放大效果
2016/12/19 Javascript
jQuery实现页面滚动时智能浮动定位
2017/01/08 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
2017/01/16 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
2017/02/07 Javascript
详解AngularJS之$window窗口对象
2018/01/17 Javascript
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
2020/04/30 jQuery
Element实现表格嵌套、多个表格共用一个表头的方法
2020/05/09 Javascript
OpenLayers3实现鼠标移动显示坐标
2020/09/25 Javascript
uni-app实现获取验证码倒计时功能
2020/11/01 Javascript
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
简单谈谈python中的语句和语法
2017/08/10 Python
python2.7和NLTK安装详细教程
2018/09/19 Python
Python实现微信消息防撤回功能的实例代码
2019/04/29 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
美国在线家装零售商:Build.com
2016/09/02 全球购物
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
五星级酒店餐饮部总监的标准岗位职责
2014/02/17 职场文书
捐款倡议书格式范文
2014/05/14 职场文书
企业安全生产月活动总结
2014/07/05 职场文书
英语三分钟演讲稿
2014/08/19 职场文书
装修活动策划方案
2014/08/27 职场文书
先进事迹材料范文
2014/12/29 职场文书
护士自荐信范文(2016推荐篇)
2016/01/28 职场文书
html5实现点击弹出图片功能
2021/07/16 HTML / CSS