zoukankan      html  css  js  c++  java
  • 获取系统信息(CPU、内存等)

    简述

    获取计算机CPU、主板、内存、硬盘、网卡这些信息,Qt中没有相应的处理,所以需要根据平台来做差异化处理。也许Qt为了跨平台,没有提供与操作系统和硬件密切相关的一些功能(如内存、CPU、硬盘等相关信息)。

    获取CPU信息

    Linux

    很简单,直接读取这几个文件就好了。

    /proc/cpuinfo     处理器信息 
    /proc/meminfo     物理内存信息 
    /proc/vmstat       虚拟内存信息 

    Windows

    调用相应的Win API来获取,GetSystemInfo用于返回关于当前系统的信息。

    SYSTEM_INFO systemInfo;
    GetSystemInfo(&systemInfo);
    
    qDebug() << QStringLiteral("处理器掩码:%1").arg(systemInfo.dwActiveProcessorMask);
    qDebug() << QStringLiteral("处理器个数:%1").arg(systemInfo.dwNumberOfProcessors);
    qDebug() << QStringLiteral("处理器分页大小:%1").arg(systemInfo.dwPageSize);
    qDebug() << QStringLiteral("处理器类型:%1").arg(systemInfo.dwProcessorType);
    qDebug() << QStringLiteral("最大寻址单元:") << systemInfo.lpMaximumApplicationAddress;
    qDebug() << QStringLiteral("最小寻址单元:") << systemInfo.lpMinimumApplicationAddress;
    qDebug() << QStringLiteral("处理器等级:%1").arg(systemInfo.wProcessorLevel);
    qDebug() << QStringLiteral("处理器版本:%1").arg(systemInfo.wProcessorRevision);

    获取内存信息

    #define MB (1024 * 1024)
    MEMORYSTATUSEX statex;
    statex.dwLength = sizeof(statex);
    GlobalMemoryStatusEx(&statex);
    qDebug() << QStringLiteral("物理内存使用率:%1").arg(statex.dwMemoryLoad);
    qDebug() << QStringLiteral("物理内存总量:%1").arg(statex.ullTotalPhys / MB);
    qDebug() << QStringLiteral("可用的物理内存:%1").arg(statex.ullAvailPhys / MB);
    qDebug() << QStringLiteral("系统页面文件大小:%1").arg(statex.ullTotalPageFile / MB);
    qDebug() << QStringLiteral("系统可用页面文件大小:%1").arg(statex.ullAvailPageFile / MB);
    qDebug() << QStringLiteral("虚拟内存总量:%1").arg(statex.ullTotalVirtual / MB);
    qDebug() << QStringLiteral("可用的虚拟内存:%1").arg( statex.ullAvailVirtual / MB);
    qDebug() << QStringLiteral("保留(值为0):%1").arg(statex.ullAvailExtendedVirtual / MB);
  • 相关阅读:
    熟练使用有棱有角的内存
    计算机进行小数运算时出错的原因
    数据是用二进制数表示的
    代码之外的功夫
    运行库实现
    系统调用与API
    运行库
    内存
    Windows下的动态链接
    Sharding-JDBC 实现垂直分库水平分表
  • 原文地址:https://www.cnblogs.com/itrena/p/5938285.html
Copyright © 2011-2022 走看看