zoukankan      html  css  js  c++  java
  • PHP 之获取Windows下CPU、内存的使用率

    <?php
    /**
     * Created by PhpStorm.
     * User: 25754
     * Date: 2019/5/4
     * Time: 13:42
     */
    
    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:\\.\rootcimv2: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:\\.\rootcimv2")
        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;
        }
    }
    

      

  • 相关阅读:
    AngularJs之ng-repeat的用法
    JavaBean转换为XML的源码
    JS插件之——ztree
    JS插件之——bootstrap-suggest.js
    oracle异常记录
    Java 中常用缓存Cache机制的实现《二》
    缓存、缓存算法和缓存框架简介
    oracle数据库高级应用之《自动生成指定表的insert,update,delete语句》
    Oracle语句优化之一
    android 7.0 多渠道打包
  • 原文地址:https://www.cnblogs.com/qczy/p/12875308.html
Copyright © 2011-2022 走看看