可通过系统API如Linux的/proc/stat或Python的psutil库获取CPU使用率、温度等实时
通过API获取CPU信息的详细指南
操作系统原生API获取方法
Windows系统
方法:WMI(Windows Management Instrumentation)
| 工具 | 命令示例 | |
|---|---|---|
| PowerShell | Get-WmiObject -Class Win32_Processor | CPU型号、核心数、频率等 |
| C# | System.Management.ManagementObjectSearcher | 同上,需引用System.Management命名空间 |
示例代码(PowerShell):
$cpu = Get-WmiObject -Class Win32_Processor $cpu | Select-Object Name,NumberOfCores,MaxClockSpeed
Linux系统
方法:读取/proc/cpuinfo文件
| 工具 | 命令示例 | |
|---|---|---|
| Shell | cat /proc/cpuinfo | 完整CPU信息(多核会重复显示) |
| Python | open('/proc/cpuinfo').read() | 同上,需解析文本内容 |
示例代码(Python):
with open('/proc/cpuinfo') as f:
info = f.read()
print(info) # 包含model name、cores、bogomips等字段 macOS系统
方法:system_profiler命令
| 工具 | 命令示例 | |
|---|---|---|
| Terminal | system_profiler SPHardwareDataType | CPU型号、速度、缓存等信息 |
| Swift | Process().launched()结合SPHardwareDataType | 同上,需调用系统命令 |
示例代码(Terminal):
system_profiler SPHardwareDataType | grep "Processor"
跨平台解决方案
Python psutil库
| 功能 | 方法名 | 返回值类型 |
|---|---|---|
| CPU物理核心数 | psutil.cpu_count(logical=False) | int |
| CPU频率 | psutil.cpu_freq()._asdict() | dict(含max/min/current) |
| 型号信息 | 需结合platform或subprocess | string |
示例代码:
import psutil
print("逻辑核心数:", psutil.cpu_count())
print("物理核心数:", psutil.cpu_count(logical=False))
print("频率信息:", psutil.cpu_freq()._asdict()) Node.os-utils库
| 功能 | 方法名 | 特点 |
|---|---|---|
| CPU负载 | osu.cpu.usage() | 返回百分比数组(每核) |
| 型号检测 | 需结合os模块 | 依赖系统命令 |
示例代码(JavaScript):
const osu = require('os-utils');
osu.cpu.usage().then(info => {
console.log('CPU负载:', info); // [12.3, 15.6, ...]
}); API对比表格
| 维度 | Windows WMI | Linux /proc/cpuinfo | Python psutil |
|---|---|---|---|
| 平台支持 | Windows专属 | Linux专属 | 跨平台 |
| 安装依赖 | 系统内置 | 系统内置 | 需安装库(pip install psutil) |
| 核心信息获取难度 | ★★☆(需WMI查询) | ★★★(需文本解析) | ★☆(直接API调用) |
| 实时监控能力 | 支持 | 支持(需定时读取) | 支持 |
常见问题与解答
Q1: 如何实现跨平台的CPU使用率实时监控?
A: 推荐使用Python的psutil库,其cpu_percent(interval=1)方法可设置采样间隔,配合多线程可实现实时监控,示例:

import psutil
while True:
print("CPU使用率: %.2f%%" % psutil.cpu_percent(interval=1)) Q2: 不同系统获取的CPU型号格式不一致怎么办?
A: 建议统一处理为标准化格式:

- Windows/Linux:提取
cpuinfo中的model name字段 - macOS:提取
system_profiler输出的”Processor”行 - 最终统一为
{family} {model} @ {frequency}GHz格式,Intel Core i7-9700K @ 3
以上内容就是解答有关“api 获取cpu”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复