4094|8

139

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

求助常用的计算CPU利用率的方法 [复制链接]

常用的计算CPU利用率的方法有哪些?我知道一种是在while{}循环中加入一个计数值,同时使用一个定时器,在定时器ISR中计算计数值的增量与预计增量的比值,即可计算出CPU利用率。
不知道还有没有更好的方法呢?

最新回复

看操作系统内核的代码啊  详情 回复 发表于 2012-5-13 23:45
 
点赞 关注

回复
举报

1803

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

回复 楼主 sphinz 的帖子

在 Stellariswear/utils 中有一个 cpu_usage.c 里边应该有相关的内容。可以参考一下。也有相关例程。
 
 

回复

547

帖子

0

TA的资源

纯净的硅(初级)

板凳
 
这么深奥的问题。。。还真不晓得。。
 
个人签名嵌入式培训www.51great.org
 
 

回复

167

帖子

0

TA的资源

纯净的硅(高级)

4
 
这个while循环应该是主程序中的那个永不退出的死循环。在while循环中调用其他函数,如果没有函数调用,则while循环运行快些,递增值较多,有函数调用时,则要占用CPU时间,递增值较少。
比如你的定时器设置了1000个时钟周期中断一次,而在这时候如果while循环中的递增只递增到200个时钟周期的数值(不是200,是200个时钟周期的数值,具体要看看while循环的执行周期),那么CPU的使用率则为80%。
总之,能够计算CPU使用率的程序都需要有一个任务调度,或者简单的任务分配机制。比如说操作系统,或者前后台系统。
我以前写过一个非常简陋的任务分配方面的帖子https://bbs.eeworld.com.cn/viewthread.php?tid=287078,希望对你有所帮助,操作系统我还没有接触过,只是在看相关文章的时候都提到过有一个最基础的可选进程,是统计CPU使用率的。
 
 
 

回复

139

帖子

0

TA的资源

一粒金砂(高级)

5
 

回复 沙发 Study_Stellaris 的帖子

刚刚看了cpu_usage.c的源代码,它实现起来就很巧妙了。
采用一个timer做计时,设置timer在CPU正常运行模式下计数,在CPU的sleep模式下不计数。
如果进入while()的话,那么CPU进入sleep模式,固定周期timer的实际计数值除以固定周期的正常计数值,可以得出CPU的使用率。
 
 
 

回复

139

帖子

0

TA的资源

一粒金砂(高级)

6
 
原帖由 柳叶舟 于 2011-10-14 15:47 发表
这个while循环应该是主程序中的那个永不退出的死循环。在while循环中调用其他函数,如果没有函数调用,则while循环运行快些,递增值较多,有函数调用时,则要占用CPU时间,递增值较少。
比如你的定时器设置了1000个 ...

看了你的帖子,写的很好!学习了!
 
 
 

回复

1412

帖子

15

TA的资源

版主

7
 
可以参考下操作系统内核的代码。。。
 
个人签名https://bbs.eeworld.com.cn/thread-471646-1-1.html
欢迎加入我的团队
 
 

回复

1803

帖子

0

TA的资源

五彩晶圆(高级)

8
 

回复 5楼 sphinz 的帖子

最近看了一下,不知道
  ulUsage = ((((g_ulCPUUsagePrevious - ulValue) * 6400) /
                g_ulCPUUsageTicks) * 1024);

6400 和 1024 是什么意思
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

9
 
看操作系统内核的代码啊
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表