如何一次读取所有CPU内核的频率?

如何一次读取所有CPU内核的频率?,c,linux,bash,cpu,C,Linux,Bash,Cpu,我想得到给定时刻所有CPU核的当前频率 当我这样做时: cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq 我得到以下值: 803808 900124 900007 900040 900031 900025 900003 900005 它们是否不同,因为每个核心的工作频率略有不同?还是因为在读取不同的文件(对应于不同的内核)之间有一段时间 在Linux中,一次读取所有CPU内核频率的正确方法是什么?(C或BASH)您可以通过此

我想得到给定时刻所有CPU核的当前频率

当我这样做时:

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq 
我得到以下值:

803808
900124
900007
900040
900031
900025
900003
900005
它们是否不同,因为每个核心的工作频率略有不同?还是因为在读取不同的文件(对应于不同的内核)之间有一段时间


在Linux中,一次读取所有CPU内核频率的正确方法是什么?(
C
BASH

您可以通过此BASH命令读取此信息:

 cat /proc/cpuinfo

由于省电,它们略有不同。你的操作系统会降低CPU速度以节省能源。为什么同样的微秒读取它们很重要?我同意上面的@KamilCuk。在C语言中,您可以通过先打开伪文件,然后使用足够大的缓冲区(比如每次读取32字节)读取伪文件,并仅在读取后对其进行解析来最小化任何时间差。这样一来,任何时间差都是可以忽略的,在典型情况下,严格按照系统调用成本的顺序(因为这些是sysfs属性);您可以安全地将频率视为一个“并发快照”。在我的计算机上,CPU频率信息没有列出在<代码> /PROC/CPUFION<代码>中:(代码> LSCPU<代码>只显示一个值(不显示所有内核值).BTW你知道这是什么值吗?意思是?第一个核心?@user2449761 lscpu显示CPU可以是什么频率。缩放\u cur\u freq这是当前频率