有没有办法从终端(不是Intel Power Gadget)查看macOS中的当前CPU频率


14

我知道以下答案:

/programming/9948987/detect-current-cpu-clock-speed-programmatically-on-os-x

查看当前时钟OS X中CPU的速度?

哪个是Intel Power Gadget获取当前CPU频率的方法,是否有程序/方法可以从终端获取此信息?

sysctl hw.cpufrequency仅显示CPU的标称频率,即制造商所说的频率。当CPU空闲时,它不考虑Turbo Boost或更低的频率。(例如,如果CPU是i5,1.4GHz,它将始终处于1.4GHz)

C使用SO 的解决方案sysctl.h具有相同的效果。


StackOverflow链接后面的答案包含基于终端的答案。您能描述一下这对您不起作用吗?
nohillside

在所有的解决方案,因此只显示标称CPU频率,它不根据实际频率发生变化,不相关与功率小工具
amanusk


据我了解,“频率”是根据许多因素计算得出的。没有“探针”连接到CPU以实时测量实际频率。
艾伦(Allan)

1
如果它可以在Linux上运行,那么可以查看那里的源代码吗?
nohillside

Answers:


4

由于您的评论提到您实际上只是在专注于启用终端(或者更准确地说不是桌面)...

我认为英特尔Power Gadget将帮助您从Terminal获得信息。来自英特尔

英特尔®电源小工具还提供了一个C / C ++应用程序编程接口(API),用于访问程序中的功率和频率数据。Windows和Mac OS X支持该API。有关该API的更多信息,请参见:

在同一页面上,还提供了指向在Mac OS X上使用Intel Power Gadget API的链接。

抱歉,这不是开箱即用解决方案的链接;我在Google花了几分钟,看看是否能找到一个已经做到这一点的人。


1
到目前为止,这是最好的答案。我希望有一种无需安装外部软件(例如sysctl)或使用开源软件即可获取频率信息的方法。
amanusk

2

尝试 top -F -n0 -s3 | grep "CPU usage"

top显示和更新有关进程的排序信息
-F不会在共享库(框架)上计算统计信息
-n0显示零进程(因为我们对它们不感兴趣)
-s3每3秒更新一次(默认值为1),
grep仅向我们显示包含CPU使用率的行

示例输出:

$ top -F -n0 -s3 | grep "CPU usage"
CPU usage: 9.36% user, 20.0% sys, 70.63% idle 
CPU usage: 8.35% user, 8.19% sys, 83.45% idle 
CPU usage: 8.18% user, 7.77% sys, 84.4% idle 
CPU usage: 5.89% user, 8.1% sys, 86.8% idle

您甚至可以解析输出以在其他地方显示。

请注意,top它在运行时会占用大量资源。

编辑:啊,你想要频率。我知道iStat Menus必须安装一个帮助程序才能实时获取该信息。


2
确实,频率是个问题,不幸的是top和htop并不能解决这个问题。
amanusk

2

我不得不认为这是一个XY问题,因为“一旦获得此号码,您将做什么?” 并想直接回答,但让我们深入探讨一下您要衡量的内容。macOS上的CPU中断的间隔时间为150毫秒,并且其中的大部分细节在WWDC 2013以及以后的电源管理,App Nap(尤其是Session 209既不错又很容易使用)以及macOS上的电池寿命优化方面公开。

计时器合并-从WWDC 2013会话209开始在macOS上在150毫秒的时间范围内节省能源

由于代码和CPU的每个内核都可以并且将根据短暂的负载因素每秒变化数百次,因此功耗优化考虑了屏幕上可见的内容,到达的网络数据以及现代CPU甚至具有一个“通用”想法。 “任何时间点的时钟速率似乎都大大简化了现实。在许多MacBook Pro上具有8个内核,在iMac Pro上具有数十个内核-您正在将大量复杂性降低到一个数字。

单个内核可以超频运行时的提升不太容易测量,但是您可以通过的热记录非常简单地测量热节流pmset

pmset -g therm

当然,您可以记录自发的CPU热节流变化,pmset -g thermlog如果可以将其收集到其他地方,则可以将其映射到CPU规格。


也欢迎选择获取每核频率的方法:)。频率可以每秒变化很多次,但是,例如,如果您想知道空闲或全速时的频率(例如在压力测试中),那么采样一秒就足够了。实际上,通过读取SMC密钥可以确定功率和温度(尽管不是直截了当),我希望还有一个用于频率的SMC密钥。事实是,有一种软件可以获取此信息(Intel Power Gadget),问题是如果没有额外的软件怎么能做到这一点。
amanusk
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.