• 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;
        }
    }
  • 相关阅读:
    关于cookie的一点知识
    一点简单的关于ASP.NET下载
    一个小小小问题
    复习linq
    拾遗一些关于存储过程
    一般处理程序(下)
    复习一下递归
    复习JS和jQuery
    一点关于Ajax和一个等待图标的显示
    C#开发BIMFACE系列14 服务端API之批量获取转换状态详情
  • 原文地址:https://www.cnblogs.com/yang-2018/p/10808324.html
Copyright © 2020-2023  润新知