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:\\\\.\\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;
    }
}

原文地址:https://www.cnblogs.com/yang-2018/p/10808324.html

时间: 2024-08-01 10:34:44

PHP 之获取Windows下CPU、内存的使用率的相关文章

Windows系统CPU内存网络性能统计第二篇 CPU CPU整体使用率

分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net 本文配套程序下载地址为:http://download.csdn.net/detail/morewindows/5160810 转载请标明出处,原文地址:http://blog.csdn.net/morewindows/article/details/8678359 欢迎关注微博:http://weibo.com/MoreWindo

Windows系统CPU内存网络性能统计第四篇 CPU 多核CPU各核使用率C++

分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net 转载请标明出处,原文地址:http://blog.csdn.net/morewindows/article/details/8678396 欢迎关注微博:http://weibo.com/MoreWindows Windows系统CPU内存网络性能统计第四篇 CPU多核CPU各核使用率 C++ http://blog.csdn.ne

Windows系统CPU内存网络性能统计第一篇 内存

最近翻出以前做过的Windows系统性能统计程序,这个程序可以统计系统中的CPU使用情况,内存使用情况以及网络流量.现在将其整理一下(共有三篇),希望对大家有所帮助. 目录如下: 1.<Windows系统CPU内存网络性能统计第一篇 内存> 2.<Windows系统CPU内存网络性能统计第二篇 CPU> 3.<Windows系统CPU内存网络性能统计第三篇网络流量> 本篇将介绍统计系统内存使用情况,包括内存使用率.总物理内存大小.可用物理内存大小.总虚拟内存大小,可用虚

一个统计 CPU 内存 硬盘 使用率的shell脚本

一个统计 CPU 内存 硬盘 使用率的shell脚本,供大家学习参考 #!/bin/bash #This script is use for describle CPU Hard Memery Utilization total=0 idle=0 system=0 user=0 nice=0 mem=0 vmexec=/usr/bin/vmstat which sar > /dev/null 2>&1 if [ $? -ne 0 ] then ver=`vmstat -V | awk

linuxt与windows下tomcat内存设置

Linux下修改JVM内存大小: 要添加在tomcat 的bin 下catalina.sh文件中,找到cygwin=false,在这一行的前面加入参数,具体如下# vi TOMCAT_HOME/bin/catalina.sh(默认文件内容) JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m" 以下是自己设置的另外增加一个setenv.sh文件来设

python通过wmi获取windows下进程的信息

linux应该有很多方法可以获取进程的cpu和内存信息,但windows貌似之前接触的是psutil,后来查了一些资料发现wmi也能够获取进程的信息,但貌似效率不太高,应该可以做监控等性能要求不太高的情况 下载wmi,这个网上很多方法和途径,我是用easyinstall来安装,这个不详细说明了 直接附上代码: import wmi from win32com.client import GetObject import win32gui,time mywmi = GetObject("winmg

Windows 下的内存泄漏检测方法

在 Windows 下,可使用 Visual C++ 的 C Runtime Library(CRT) 检测内存泄漏. 首先,我们在.c或.cpp 文件首行插入这一段代码: #define _CRTDBG_MAP_ALLOC #include <crtdbg.h> main() 中插入如下的代码: int main() { //开始的地方插入该语句 _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); //_CrtSetBr

Linux 查看机器配置,及cpu/内存/硬盘使用率

Linux下怎样查看机器配置啊?cpu/内存/硬盘 dmesg显示开机信息.kernel会将开机信息存储在ring buffer中.您若是开机时来不及查看信息,可利用dmesg来查看.开机信息亦保存在/var/log目录中,名称为dmesg的文件里 dmesg|grep hd硬盘dmesg|grep cpucpudmesg|grep proc内存dmesg|grep redhat操作系统dmesg|more更多信息uname -a操作系统版本 查看linux cpu和内存利用率2008-07-1

获取Windows操作系统的CPU使用率以及内存使用率

阅读目录 声明定义 引用lib文件 获取操作系统CPU使用率 获取操作系统内存大小 获取操作系统内存使用率 此功能参考了ProcessHacker项目的代码. 回到顶部 声明定义  Collapse typedef struct _UINT64_DELTA { ULONG64 Value; ULONG64 Delta; } UINT64_DELTA, *PUINT64_DELTA; typedef struct _UINTPTR_DELTA { ULONG_PTR Value; ULONG_PT