如何获取,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…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...
STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...
【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅
目录 前言 操作系统与驱动程序 是什么,为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中,我们在使用电子设备时,我们所输入执行的每一条指令最终大多都会作用到硬件上,比如下载一款软件最终会下载到硬盘上&am…...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...
