如何在M1芯片MacBook上通过终端或Apple API获取CPU温度与风扇转速
M1 系列芯片 Mac 功耗相关功能自研实现方案
M1 芯片采用的 Arm 架构与原有 Intel x86 架构存在底层差异,公开渠道可查的多数同类教程仅适配 Intel 平台,且通用的 sudo powermetrics 命令默认参数下无法在 Apple Silicon 设备上正常输出数据,可按照以下方案自行开发相关功能:
- 优先使用官方原生工具调整参数后采集:Apple Silicon 平台原生支持
powermetrics命令,仅需指定采样域即可正常输出数据,执行sudo powermetrics -s cpu_power,gpu_power,ane_power -n 1即可获取单次 CPU、GPU、神经网络引擎的实时功耗数据,也可调整参数实现持续采样,无需依赖任何第三方付费工具。 - 若需要实现自定义逻辑的深度采集,可调用 IOKit 框架相关接口:
- 引入
<IOKit/pwr_mgt/IOPM.h>头文件,调用公开的功耗管理相关方法即可读取芯片各核心的频率、电压、功耗数据 - 若需要访问更底层的寄存器数据,可调用 IOKit 私有接口,仅需在开发时对应用添加对应功耗读取的 entitlement 权限,或临时关闭 SIP 相关限制即可
- 引入
- 不需要实时采集的场景可直接解析系统本地日志:
/private/var/log/powermanagement/目录下存储了系统自动记录的全硬件功耗、运行状态历史数据,日志为半结构化格式,可直接解析提取所需字段,普通用户权限即可读取,不需要 root 授权。
注:若自研工具需要对外发布,请勿调用未公开的私有 API,否则无法通过 App Store 审核,仅个人使用可不受该限制。
内容的提问来源于stack exchange,提问作者Timotej Leginus
相关产品推荐
相关产品推荐

