WinCE CPU使用率计算 测试工具


原先的文章丢到回收站,弄不回来。这里是工具(代码)的资源链接:

http://download.csdn.net/source/2305979

http://download.csdn.net/source/2420987

很久没有整理了,这两个发重复了。

很久没有再接触WinCE了,这里简单讲一下计算方法。

内存使用情况的获取没什么好说的,现成的API。不过只能获取全局的内存使用状态。每个进程的内存使用情况暂时没什么好办法。曾经我试过遍历进程的虚拟空间,利用块的状态(提交,保留)综合来计算。肯定是不准,实际的数据也不太对。记得魅族的M8上的任务管理器可以显示每个进程的内存使用情况。应该是定制系统的时候做的功能,底层的东西我也不明白,有思绪的不妨给我发个信息,让我也长长见识。

CPU的使用率,没有现成的API。相信很多人也想得到方法,只是没有人去动手一下而已。CPU的使用率,说白了就是这个公式:非idle进程使用时间/统计时间。于是我们可以取一个统计单位时间,并计算出非idle时间。统计时间取1000ms,使用GetIdleTime()获取idle的时间,那么CPU使用率为:100 * (1000 - GetIdleTime())/1000。开始这个工具的第一版是这么实现的,后续当然又碰到了问题。有的平台定制的时候,没有实现GetIdleTime(),这种情况下GetIdleTime()返回0,造成我们计算出的CPU使用率一直是100%。另外一种办法就是统计所有线程的时间(CPU基本调度单位),做累加得到所有非idle时间。实作步骤为:

1.使用CreateToolhelp32Snapshot()等工具遍历所有线程

2.使用GetThreadTimes()获取每个线程的时间

3.累加所有线程时间,计算使用率

实际汇总的时间有些误差,所以控制不要让CPU范围超出[0-100]。具体见代码,cpp的名字,c语言的心。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值