栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何计算CPU使用率?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何计算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不会让程序占用所有处理时间,而不会自己占用任何处理时间(除非您让它这样做)。换句话说,即使应用程序似乎挂起,操作系统
仍然 可以占用一些时间来完成自己的工作。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/609287.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号