如何获取,CPU,GPU,硬盘,网卡,内存等硬件性能监控与各项温度传感器
首先需要下载 OpenHardwareMonitorServer 这是一个基于OpenHardwareMonitor 的 Web 服务器。可以让任何语言都可以获取硬件信息和值,OpenHardwareMonitorServer 是没有UI界面的因此它可以当成控制台程序使用。

该程序可用参数如下
参数:需要管理员权限
-p 指定WEB端口并开启服务器(默认8080)
–console 以控制台Json格式返回硬件信息与WEB方式冲突(默认false)
–group 以群组格式返回硬件信息(默认true)
–mainboard 启用主板监控 (默认true)
–cpu 启用CPU监控 (默认true)
–ram 启用内存监控 (默认true)
–gpu 启用GPU监控 (默认true)
–fan 启用风扇控制器监控 (默认true)
–hdd 启用硬盘监控 (默认true)
–network 启用网络监控 (默认true)
解析JSON 实体类
Kotlin:
data class ExampleGenerate (val mainboard: List<Hardware>,val cpu: List<Hardware>,val ram: List<Hardware>,val gpuNvidia: List<Hardware>,val network: List<Hardware>,val hdd: List<Hardware>
)data class Hardware (val hardwareType: Long,val hasModelSpecificRegisters: Boolean?,val hasTimeStampCounter: Boolean?,val timeStampCounterFrequency: Double?,val subHardware: List<Any?>,val parent: Any? = null,val sensors: List<Sensor>,val name: String,val identifier: String,
)data class Sensor (val sensorType: Long,val identifier: String,val name: String,val index: Long,val isDefaultHidden: Boolean,val value: Double,val min: Double,val max: Double,val control: Any? = null
)
它可以获取的硬件信息如下:
这份JSON接口文档是过时的仅作为参考
1. 接口信息
| 项目 | 说明 |
|---|---|
| 请求 URL | http://127.0.0.1:8080/ |
| 请求方式 | HTTP GET |
| 返回格式 | JSON 数据 |
2. JSON 数据整体结构
| 顶层键 | 描述 |
|---|---|
| Mainboard | 主板信息 |
| CPU | CPU(中央处理器)信息 |
| RAM | 内存(RAM)数据 |
| GpuNvidia | NVIDIA 显卡信息 |
| HDD | 硬盘(磁盘)信息 |
3. 主板(Mainboard)数据结构
| 字段 | 类型 | 说明 |
|---|---|---|
| Name | 字符串 | 主板名称(例如:Lenovo LNVNB161216) |
| Identifier | 字符串 | 设备唯一标识符(例如:/mainboard) |
| HardwareType | 数字 | 硬件类型编号(0 表示主板) |
| Parent | null | 父设备信息(主板一般无父设备) |
| SubHardware | 数组 | 子硬件列表(目前为空数组) |
| Sensors | 数组 | 传感器数据列表(目前为空数组) |
4. CPU 数据结构
4.1 CPU 基本信息
| 字段 | 类型 | 说明 |
|---|---|---|
| Name | 字符串 | CPU 名称(例如:AMD Ryzen 5 5600H) |
| Identifier | 字符串 | 设备标识符(例如:/amdcpu/0) |
| HardwareType | 数字 | 硬件类型编号(2 表示 CPU) |
| HasModelSpecificRegisters | 布尔 | 是否支持特定寄存器 |
| HasTimeStampCounter | 布尔 | 是否支持时间戳计数器 |
| TimeStampCounterFrequency | 数值 | 时间戳计数器频率(例如:3293.7214576025804) |
| SubHardware | 数组 | 子硬件列表(目前为空数组) |
| Sensors | 数组 | CPU 相关的传感器数据(包括负载、功率、温度、时钟等) |
4.2 CPU 传感器字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| SensorType | 数字 | 传感器类型编号(如 1:时钟、2:温度、3:负载、9:功率) |
| Identifier | 字符串 | 传感器唯一标识符(例如:/amdcpu/0/load/1 表示第 1 核负载) |
| Name | 字符串 | 传感器名称(例如:CPU Core #1) |
| Index | 数值 | 传感器索引,用于区分同类传感器 |
| IsDefaultHidden | 布尔 | 是否默认隐藏(前端显示时可依据此字段过滤) |
| Value | 数值 | 当前传感器读数(例如:负载百分比、功率数值、温度等) |
| Min | 数值 | 传感器最小可能值 |
| Max | 数值 | 传感器最大可能值 |
| Control | 任意 | 控制字段,目前一般为 null,可用于未来扩展(如风扇控制等) |
5. 内存(RAM)数据结构
| 字段 | 类型 | 说明 |
|---|---|---|
| Name | 字符串 | 内存名称(例如:Generic Memory) |
| Identifier | 字符串 | 设备标识符(例如:/ram) |
| HardwareType | 数字 | 硬件类型编号(3 表示内存) |
| SubHardware | 数组 | 子硬件列表(目前为空数组) |
| Sensors | 数组 | 内存传感器数据,包含负载、已使用内存和可用内存信息 |
内存传感器说明
| 传感器字段 | SensorType 数值 | 说明 |
|---|---|---|
| 内存负载 | 3 | 内存整体使用负载(百分比) |
| Used Memory | 10 | 已使用内存(数值,单位视情况而定) |
| Available Memory | 10 | 可用内存(数值,单位视情况而定) |
6. NVIDIA 显卡(GpuNvidia)数据结构
| 字段 | 类型 | 说明 |
|---|---|---|
| Name | 字符串 | 显卡名称(例如:NVIDIA NVIDIA GeForce RTX 3050 Ti Laptop GPU) |
| Identifier | 字符串 | 设备标识符(例如:/nvidiagpu/0) |
| HardwareType | 数字 | 硬件类型编号(4 表示显卡) |
| SubHardware | 数组 | 子硬件列表(目前为空数组) |
| Sensors | 数组 | 显卡传感器数据,包含温度、核心时钟、显存频率、负载和显存使用信息 |
显卡传感器说明(部分)
| 传感器字段 | SensorType 数值 | 说明 |
|---|---|---|
| GPU Core | 2 | GPU 核心温度(摄氏度) |
| GPU Core | 1 | GPU 核心时钟频率(MHz) |
| GPU Memory | 1 | GPU 显存时钟频率(MHz) |
| GPU Load | 3 | GPU 负载(百分比) |
| GPU Memory | 11 | 显存使用数据(总、已用、剩余) |
7. 硬盘(HDD)数据结构
| 字段 | 类型 | 说明 |
|---|---|---|
| Name | 字符串 | 硬盘名称(例如:Generic Hard Disk) |
| Identifier | 字符串 | 设备标识符(例如:/hdd/0、/hdd/1 等) |
| HardwareType | 数字 | 硬件类型编号(8 表示硬盘) |
| SubHardware | 数组 | 子硬件列表(目前为空数组) |
| Sensors | 数组 | 硬盘传感器数据,主要关注磁盘已使用空间百分比信息 |
硬盘传感器说明
| 传感器字段 | SensorType 数值 | 说明 |
|---|---|---|
| Used Space | 3 | 硬盘已使用空间百分比 |
8. 传感器类型对应说明
| SensorType 数值 | 描述说明 |
|---|---|
| 1 | 时钟频率(单位:MHz) |
| 2 | 温度(单位:摄氏度) |
| 3 | 负载或使用率(百分比) |
| 9 | 功率(单位:瓦特) |
| 10 | 内存相关数据(内存使用情况) |
| 11 | 显存相关数据(总、已用、剩余) |
相关文章:
如何获取,CPU,GPU,硬盘,网卡,内存等硬件性能监控与各项温度传感器
首先需要下载 OpenHardwareMonitorServer 这是一个基于OpenHardwareMonitor 的 Web 服务器。可以让任何语言都可以获取硬件信息和值,OpenHardwareMonitorServer 是没有UI界面的因此它可以当成控制台程序使用。 该程序可用参数如下 参数:需要管理员权限…...
4. React 中的 CSS
用例中的干净的脚手架的创建可以参考另一篇文章:3.React 组件化开发React官方并没有给出在React中统一的样式风格: 由此,从普通的css,到css modules,再到css in js,有几十种不同的解决方案,上百…...
【工业安全】-CVE-2019-17621-D-Link Dir-859L 路由器远程代码执行漏洞
文章目录 1.漏洞描述 2.环境搭建 3.漏洞复现 4.漏洞分析 4.1:代码分析 4.2:流量分析 5.poc代码: 1.漏洞描述 漏洞编号:CVE-2019-17621 漏洞名称:D-Link DIR-859 命令注入漏洞 威胁等级:严重 漏洞详…...
FastExcel + Java:打造高效灵活的Excel数据导入导出解决方案
作者:后端小肥肠 🍇 我写过的文章中的相关代码放到了gitee,地址:xfc-fdw-cloud: 公共解决方案 🍊 有疑问可私信或评论区联系我。 🥑 创作不易未经允许严禁转载。 姊妹篇: 基于AOP的数据字典实现…...
fun-transformer学习笔记-Task1——Transformer、Seq2Seq、Encoder-Decoder、Attention之间的关系
Transformer、Seq2Seq、Encoder-Decoder、Attention由这四者之间的关系可以从模型架构的发展脉络来理解: Seq2Seq 与 Encoder–Decoder 模型 “Seq2Seq”(sequence‐to‐sequence)是一类用于将一个变长序列映射为另一个变长序列的任务&#x…...
使用Hexo部署NexT主体网站
一.使用git提交文件 参考: 从零开始搭建个人博客(超详细) - 知乎 致谢! 第一种:本地没有 git 仓库 直接将远程仓库 clone 到本地;将文件添加并 commit 到本地仓库;将本地仓库的内容push到远程仓…...
图书管理项目(spring boot + Vue)
想要该项目的话,就 jia 我,并在评论区给我说一下,只需要1元,我把整个项目发给你 jia微:18439421203(名字叫:Bingo) 运行图片:...
python实现常见数学概率分布
常见正态分布 1.贝塔分布1.1 概率密度函数1.2参数对分布形状的影响1.3 应用场景1.4 python实现 2. 帕累托分布(80/20法则)3. 正态分布(高斯分布)3.1 正态分布对应性质3.2 正态分布对应图像实现的完整项目示例,包含权限控制、数据加载状态处理、性能优化等常见高级功能。创建一个简单的博客系统: // 项目结构: src/ |-- components/ | |-- ArticleList.jsx | |-- Article.jsx | |-- He…...
基于Qt 和微信小程序的用户管理系统:WebSocket + SQLite 实现注册与登录
目录 一. 概要 二. 技术栈 三. 系统功能设计 3.1 功能模块 3.2 数据表设计 四. 具体实现 4.1 Qt 服务端 4.1.1 初始化 WebSocket 服务器 4.1.2 用户管理界面 4.2 微信小程序端 4.2.1 注册功能 4.2.2 登录功能 五. 运行效果 六. 源码下载 一. 概要 在物联网和智能设备…...
在CT107D单片机综合训练平台上实现外部中断控制LED闪烁
引言 在单片机开发中,外部中断是一个非常重要的功能,它可以让单片机在检测到外部信号变化时立即做出响应。本文将详细介绍如何在CT107D单片机综合训练平台上使用外部中断来控制LED灯的闪烁。我们将使用两种不同的方式来实现这一功能:一种是在…...
HTML之JavaScript使用JSON
HTML之JavaScript使用JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON是JavaScript对象的字符串表示法,它使用文本表示一个js对象的信息,可以将json字符串转换…...
算法很美笔记(Java)——树
性质 树 上面的性质因为两个结点由一条边连成 结点数目越多,算法复杂度越高 二叉树 结构 层次遍历 利用队列,弹一个,加N个(队列里弹出一个元素,就把这个元素的所有孩子加进去) 具体来说:指…...
SQL面试题4:相互关注问题
引言 在社交媒体和各类社区平台蓬勃发展的当下,用户之间的关系网络成为了平台运营和数据分析的关键部分。相互关注作为一种重要的社交关系,不仅反映了用户之间的紧密程度,还对平台的社交生态、内容传播等方面有着深远影响。本文将聚焦于 SQL…...
ArcGIS基础知识之ArcMap基础设置——ArcMap选项:常规选项卡设置及作用
作为一名 GIS 从业者,ArcMap 是我们日常工作中不可或缺的工具。对于初学者来说,掌握 ArcMap 的基础设置是迈向 GIS 分析与制图的第一步。今天,就让我们一起深入了解 ArcMap 选项中常规选项卡的各个设置,帮助大家更好地使用这款强大的软件。 在 ArcMap 中,常规选项卡是用户…...
jvm 线程监控调试
文章目录 前言一、使用JDK工具转储线程文件(如jstack)1. 找到Java进程的PID:2. 使用jstack生成线程转储文件:3.验证生成的线程转储文件:二、分析文件1.使用在线工具进行分析上传thread-dump文件,等待解析完成2.查看分析结果总结前言 提示:使用jdk自带工具转储线程监控文…...
25、深度学习-自学之路-卷积神经网络基于MNIST数据集的程序展示
import keras #添加Keraskuimport sys,numpy as np from keras.utils import np_utilsimport osfrom keras.datasets import mnist print("licheng:""20"\n) np.random.seed(1)(x_train,y_train),(x_test,y_test) mnist.load_data() #第一次…...
【C++】解锁<list>的正确姿势
> 🍃 本系列为初阶C的内容,如果感兴趣,欢迎订阅🚩 > 🎊个人主页:[小编的个人主页])小编的个人主页 > 🎀 🎉欢迎大家点赞👍收藏⭐文章 > ✌️ 🤞 …...
Qt中的事件
写一个 可以拖动的按钮 DraggablePushButton.h 头文件 #ifndef DRAGGABLEPUSHBUTTON_H #define DRAGGABLEPUSHBUTTON_H#include <QPushButton> #include <QMouseEvent>class DraggablePushButton : public QPushButton {Q_OBJECTpublic:explicit DraggablePushBu…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...
[特殊字符] 手撸 Redis 互斥锁那些坑
📖 手撸 Redis 互斥锁那些坑 最近搞业务遇到高并发下同一个 key 的互斥操作,想实现分布式环境下的互斥锁。于是私下顺手手撸了个基于 Redis 的简单互斥锁,也顺便跟 Redisson 的 RLock 机制对比了下,记录一波,别踩我踩过…...
