如何计算CPU使用率?

如何计算CPU使用率?,第1张

如何计算CPU使用率

CPU不会自行计算使用率。它可能具有使该任务更轻松的硬件功能,但这主要是 *** 作系统的工作。因此,显然实现的细节将有所不同(尤其是在多核系统的情况下)。

总体思路是查看CPU需要执行的工作队列有多长时间。 *** 作系统可能会定期查看调度程序,以确定其必须执行的 *** 作数量。

这是Linux中的一个功能(从Wikipedia摘录),用于执行上述计算:

#define FSHIFT   11  #define FIXED_1  (1<<FSHIFT) #define LOAD_FREQ (5*HZ) #define EXP_1  1884  #define EXP_5  2014  #define EXP_15 2037  #define CALC_LOAD(load,exp,n)     load *= exp;     load += n*(FIXED_1-exp);     load >>= FSHIFT;unsigned long avenrun[3];static inline void calc_load(unsigned long ticks){    unsigned long active_tasks;     static int count = LOAD_FREQ;    count -= ticks;    if (count < 0) {        count += LOAD_FREQ;        active_tasks = count_active_tasks();        CALC_LOAD(avenrun[0], EXP_1, active_tasks);        CALC_LOAD(avenrun[1], EXP_5, active_tasks);        CALC_LOAD(avenrun[2], EXP_15, active_tasks);    }}

至于问题的第二部分,大多数现代 *** 作系统都是多任务的。这意味着OS不会让程序占用所有处理时间,而不会自己占用任何处理时间(除非您让它这样做)。换句话说,即使应用程序似乎挂起, *** 作系统
仍然 可以占用一些时间来完成自己的工作。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5615420.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存