本文主要是介绍【思考】什么是CPU利用率?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在Windows、Linux等操作系统中都可以直观的看到CPU利用率这个系统指标,那么这个指标的本质是什么呢?又是如何计算出来的?
如果要算一台发动机的利用率,可能的算法是“当前转速/极限转速”。类比于CPU的话,那该是“当前处理二进制指令的速度/处理二进制指令的极限速度”。
上面的人算法听起来还挺靠谱的,也完全可以和我们的日常使用体验对应上。不过一细想,“当前速度”可以统计出来,但是“极限速度”并不好预估。最明显的一个问题是:CPU处理不同指令的时间是不同的,也就无法预估一个精准的“极限速度”。
对于实际的CPU调度算法,一个进程会被分配一定的时间片去利用CPU。同样CPU利用率的计算方法也是“实际使用CPU的时间/总时间”。
题外话:一个线程在某一时刻最多只能被一个CPU核心所负载执行,而如果想占满该核心,只需要保证该线程在无阻塞的持续运行(并且获取时间分片不受限),而无需保证执行的是什么复杂的算法!这里是很反直觉的——简单的while(true)死循环和一个复杂的计算算法在一个时刻中对CPU的压力是相同。
所以理论上我们只要创建“CPU核心数”个线程进行无阻塞的死循环,就能占满CPU。
这篇关于【思考】什么是CPU利用率?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!