如何获取,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…...
基于Tauri框架构建轻量级ChatGPT桌面客户端:从原理到实践
1. 项目概述:一个基于Tauri的ChatGPT桌面客户端 最近在折腾AI应用本地化部署的时候,发现了一个挺有意思的项目: pljhonglu/ChatGPT-T 。这是一个用Tauri框架开发的ChatGPT桌面客户端,它的前端界面直接复用了开源项目 chatgpt-…...
5分钟Git指南
Git——一个版本控制系统 了解Git当你建立了一个Git版本库,那么存放.git(也就是版本库)的文件夹就被称为工作区,.git内部有一个暂存区,一个叫做master的分支,一个HEAD指针能够指向分支中不同版本的文件&…...
从网易招聘看技术人择校与城市选择:一线城市VS武汉,哪里机会更多?
技术人择校与城市选择指南:数据驱动的职业发展决策 站在高考志愿填报或考研择校的十字路口,每个怀揣技术梦想的年轻人都面临着一个关键抉择:是追逐一线城市的产业聚集效应,还是选择武汉这类高校密集但名企较少的城市?这…...
深入解析Trust Layer:声明式信任管理在微服务架构中的工程实践
1. 项目概述与核心价值最近在开源社区里,一个名为openclawunboxed/trust-layer的项目引起了我的注意。乍一看这个标题,可能会觉得有些抽象——“信任层”?这听起来像是一个偏学术或理论性的概念。但当我深入其代码仓库和设计文档后࿰…...
量子网络远程纠缠生成技术及其应用
1. 量子网络中的远程纠缠生成技术解析量子纠缠作为量子计算与量子通信的核心资源,其非局域特性为分布式系统提供了经典方法无法实现的协调能力。在金融高频交易、智能电网调度等对延迟极度敏感的领域,量子纠缠带来的协调优势尤为显著。基于腔量子电动力学…...
Claude智能优化器:提升AI应用开发效率的提示词工程中间件
1. 项目概述与核心价值 最近在折腾AI应用开发,特别是围绕Claude API做各种自动化工具时,发现一个挺普遍的问题:直接调用Claude API返回的答案,有时候会显得有点“啰嗦”或者“不够聚焦”。比如你让它写一段代码,它可能…...
repo2txt:从Git仓库到结构化文本的自动化提取工具详解
1. 项目概述:从代码仓库到纯文本的自动化提取最近在整理个人技术笔记和搭建内部知识库时,我遇到了一个挺普遍但有点烦人的问题:如何把分散在多个Git仓库里的代码、文档和配置文件,快速、完整地转换成结构清晰的纯文本文件…...
“为什么我的NotebookLM Agent总在胡说?”——20年NLP老兵手把手调试LLM引用可信度的5个黄金检查点
更多请点击: https://intelliparadigm.com 第一章:NotebookLM Agent研究辅助 核心能力与适用场景 NotebookLM Agent 是 Google 推出的基于私有文档理解的 AI 助手,专为研究者设计。它支持上传 PDF、TXT、Markdown 等格式的研究资料…...
为什么你的Ziatype输出总是发灰?3分钟定位CMYK→RGB色域坍缩根源并一键修复
更多请点击: https://intelliparadigm.com 第一章:Ziatype印相发灰现象的直观诊断与认知重构 Ziatype是一种基于铁-银工艺的古典摄影印相法,其典型特征是高对比度、深沉黑位与细腻中间调。然而在实际操作中,“发灰”(…...
API中转站稳定性怎么判断?中小企业选平台别只看SLA数字
API中转站稳定性怎么判断?中小企业选平台别只看SLA数字 摘要 :选择Claude API中转站时,稳定性是核心考量。但"稳定"对不同用户含义不同,本文从不同用户视角分析如何评估API中转站的稳定性。 中转站稳定吗 稳定是相对的&…...
