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;
        }
    }
  • 相关阅读:
    10.16(day54)
    10.17(day55)
    10.15(day53)
    10.14(day52)
    10.12(day51)
    10.11(day50)form表单,css的引入,css选择器,css修改字体属性
    10.10(day49)初识前端,html基础
    9.25(day44)
    9.24(day43)
    9.23(day42)数据库的配置,数据库表的引擎,数据类型,约束条件
  • 原文地址:https://www.cnblogs.com/yang-2018/p/10808324.html
Copyright © 2011-2022 走看看