Hi,本小节介绍怎样统计CPU的利用率。
注意,这个统计只是统计整体的利用率,即统计一段时间内有多少时间在运行任务的代码。在统计出利用率之后,我们就可以得知是需需发降低利用率以降低系统功耗,或者是否存在任务一直占用CPU不放的情况等等。
主要内容
课程中介绍了一个简单的统计方法。我们并没有想办法统计得到某段时间内真正有多长时间在执行任务的代码,这很难做到。
而是采取了一种简单的方法:系统空闲时总是执行特殊的代码块,首先获得没有任务运行时一段时间内该代码块执行了多少次;然后再统计任务正常运行时,相同时间内代码块执行多少次。二者之比计算可得利用率的百分比。
可以看出,该方法简单易于实现,通过更为简单的统计执行次数的方法来替代统计时间。虽然关注的是某个代码块;但并不关心这个代码块里究竟做了多少什么,所以具备较高的能用性。
重点难点
注意事项
低功耗影响
如果在应用中加入了空闲时让系统进入低功耗(睡眠)模式的代码,上述统计方法失效。
任务占用率
该方法不能统计某个任务占用的CPU百分比。这个需求比较难以实现,我没有深入研究。
如有兴趣,欢迎研究探讨!