计算 CPU 总使用量的百分比

计算 CPU 总使用量的百分比

因此,我正在使用 C 语言工作,我正在考虑打开 proc/cpuinfo 文件并提取数据。(老实说,我甚至不确定如何做到这一点。)但我不确定如何计算它。它只是 CPU MHz 除以总 CPU 速度吗?

在此处输入图片描述

因此在上述情况下,类似于 900.160MHZ -> 0.9 GHz。

总 CPU 使用率 = 0.9GHz/ 3.20GHz *100?

还有人知道更好的方法来做到这一点吗?

答案1

你找错地方了。你正在寻找 CPU 使用率,而 /proc/cpuinfo 不是关于这个的。

您正在寻找的是:https://www.idnt.net/en-GB/kb/941772

除了文件之外,您还可以从其他 Linux 命令(例如 iostat、sar 等)获取文件。

还有一些图书馆可以做到这一点,例如 Sigar。

sigar_t *sigar_cpu;
sigar_cpu_t old;
sigar_cpu_t current;

sigar_open(&sigar_cpu);
sigar_cpu_get(sigar_cpu, &old);

sigar_cpu_perc_t perc;

while(1)
{
    sigar_cpu_get(sigar_cpu, &current);
    sigar_cpu_perc_calculate(&old, &current, &perc);

    std::cout << "CPU " << perc.combined * 100 << "%\n";
    old = current;
    Sleep(100);
}

sigar_close(sigar_cpu);
return 0;

还有许多其他方法!我在这里分享一些!

干杯!

相关内容