Windows 10 中查询 GPU 占用率

在 Windows 10 中查询 GPU 占用率并实现 CMD 终端自动刷新,可以通过以下步骤操作:


方法 1:使用 nvidia-smi(适用于 NVIDIA 显卡)

1. 安装 NVIDIA 驱动
  • 确保已安装 NVIDIA 官方驱动(包含 nvidia-smi 工具)。
  • 验证是否可用:打开 CMD,输入 nvidia-smi,若显示 GPU 状态则已安装。
2. 实时监控 GPU 占用率

使用 nvidia-smi 的 循环刷新模式

 

cmd

nvidia-smi --query-gpu=index,temperature.gpu,utilization.gpu --format=csv -l 1

  • --query-gpu: 指定监控字段(GPU ID、温度、占用率)。
  • --format=csv: 输出格式为 CSV。
  • -l 1: 每 1 秒自动刷新。

示例输出

 

timestamp, index, temperature.gpu, utilization.gpu [%] 2023/10/01 12:00:00.000, 0, 45, 15 2023/10/01 12:00:01.000, 0, 46, 20 ...

3. 停止刷新

按 Ctrl + C 终止实时监控。

此处使用如下代码比较方便

nvidia-smi -l 5

方法 2:使用 PowerShell 脚本(无需第三方工具)

1. 查询 GPU 占用率

通过 PowerShell 的 Get-WmiObject 查询 GPU 信息:

 

powershell

Get-WmiObject -Namespace "root\cimv2" -Query "SELECT * FROM Win32_VideoController"

此命令可显示 GPU 名称、显存等信息,但 不直接提供实时占用率

2. 结合 Get-Counter 查询显卡负载

部分显卡支持通过性能计数器监控:

 

powershell

Get-Counter "\GPU Usage (SMI)"

若提示不存在,则需依赖第三方工具(如 nvidia-smi)。


方法 3:自定义 CMD 自动刷新脚本

1. 编写批处理文件(.bat)

创建一个 .bat 文件,内容如下:

 

bat

@echo off :loop cls echo Current GPU Usage: nvidia-smi --query-gpu=index,temperature.gpu,utilization.gpu --format=csv timeout /t 1 >nul goto loop

  • cls: 清屏以实现刷新效果。
  • timeout /t 1: 每秒执行一次。
  • goto loop: 无限循环。
2. 运行脚本

双击运行 .bat 文件,即可在 CMD 中看到自动刷新的 GPU 状态。


方法 4:使用第三方工具(通用)

1. GPU-Z
  • GPU-Z 是轻量级工具,实时显示 GPU 详细信息。
  • 支持所有显卡品牌(NVIDIA/AMD/Intel)。
2. HWMonitor
  • 监控 GPU 温度、电压和风扇速度。

总结

全屏复制

方法适用场景优点缺点
nvidia-smiNVIDIA 显卡命令行实时监控,支持脚本仅限 NVIDIA 显卡
PowerShell通用无需安装数据有限
批处理脚本自定义刷新灵活控制刷新频率依赖 nvidia-smi
GPU-Z所有显卡图形化界面,信息全面需安装

推荐方案

  • 若使用 NVIDIA 显卡,优先使用 nvidia-smi 或批处理脚本。
  • 其他显卡可使用 GPU-Z 获取完整监控数据。
Windows平台下使用C++检测CPU、GPU以及内存占用情况需要结合操作系统提供的API或其他库来进行操作。以下是简单的介绍: ### CPU 占用率 可以利用 `Performance Data Helper (PDH)` 库获取系统性能数据,包括处理器时间等信息。 示例步骤: 1. 初始化 PDH 并打开查询。 2. 添加计数器(如 `\Processor(_Total)\% Processor Time`)到查询中。 3. 收集并解析查询结果得到当前 CPU 使用率百分比值。 ### GPU 占用率 对于显卡资源监控较为复杂一些,通常需借助专门图形驱动程序厂商提供工具比如 NVIDIA 的 NVML(NVIDIA Management Library),AMD 提供对应 API 或者通过 DirectX/DXGI 接口间接访问某些状态统计数值。 基本流程可能是这样的: - 加载所需 DLL 文件动态链接库; - 调用函数初始化环境设置好设备句柄引用等等准备事项; - 定期轮询读取活动指标直到结束清理释放资源。 ### 内存占用量 可以通过 Windows API 函数如 GlobalMemoryStatusEx 来取得物理内存及虚拟地址空间相关信息。此结构体成员变量包含工作集中大小等工作区页面文件提交限制等方面的数据内容可供分析计算得出结论。 ```cpp MEMORYSTATUSEX memInfo; memInfo.dwLength = sizeof(MEMORYSTATUSEX); GlobalMemoryStatusEx(&memInfo); ULONGLONG totalPhysMem = memInfo.ullTotalPhys; // 总RAM容量字节数单位表示形式 ULONGLONG availPhysMem = memInfo.ullAvailPhys; // 可用空闲部分实际剩余多少同样也是以bytes计量标准表达出来 double usedPercentage = ((totalPhysMem - availPhysMem) * 100.0 / totalPhysMem); // 计算比例转换成百分百展示格式输出给用户查看理解起来更直观一点 ``` 以上只是基础概念指导,并未涵盖所有细节处理边界条件异常场景等问题需要注意的地方还有很多,在实际项目当中应该更加严谨地按照需求规格说明书编写完善健壮可靠的解决方案才行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值