RTT CPU使用率计算
来源:互联网 发布:在淘宝买复合弓靠谱吗 编辑:程序博客网 时间:2024/03/28 23:04
首先把cpu_usage_idle_hook函数添加到RT空闲钩子函数上,通过rt_thread_idle_sethook(cpu_usage_idle_hook); 函数实现,在添加钩子函数之后只有在进入空闲线程的时候才会执行此钩子函数cpu_usage_idle_hook,
然后在钩子函数里面,首先在进入 rt_enter_critical(); (关闭中断和调度)相当于CPU全速模式,计算total_count 在一个相对时间 rt_tick_get() - tick < CPU_USAGE_CALC_TICK 10个时钟周期(100ms) 累加的数值, 把这个累加出来的数值作为CPU在100ms 关闭中断和调度的情况下能够处理数据的”标准“ ,
if (total_count == 0) { /* get total count */ rt_enter_critical();//进入临界区 tick = rt_tick_get(); //得到当前系统时钟节拍 //10个时钟周期 100ms while(rt_tick_get() - tick < CPU_USAGE_CALC_TICK) { total_count ++; loop = 0; while (loop < CPU_USAGE_LOOP) loop ++; } rt_exit_critical();//离开临界区 }
接着计算 count 数据,这个count 数据每个调度周期都是变化的,根据空闲线程被调度的时间,同样是在10个系统时钟周期100ms的时间,计算出在不关闭中断和调度的情况下,count数据能够累加的数据,通过这个累加的数值反映出空闲线程的执行时间,然后通过total_count数值就可以计算出系统在一个相对时间的使用率,
count = 0; tick = rt_tick_get();//得到当前系统时钟节拍 //10个时钟周期 100ms while (rt_tick_get() - tick < CPU_USAGE_CALC_TICK) { count ++; loop = 0; while (loop < CPU_USAGE_LOOP) loop ++; }
最后根据total_count 和count数值计算cpu使用率
计算公式:
count = total_count - count;cpu_usage_major = (count * 100) / total_count;cpu_usage_minor = ((count * 100) % total_count) * 100 / total_count;
如total_count = 100;count = 80;
则可以计算出CPU在一个相对时间内占用率是20%.
主要思路是根据在一个相对时间(100ms)空闲线程执行的时间来计算,空闲线程执行的时间越长,证明CPU使用率越低,反之亦然。
阅读全文
0 0
- RTT CPU使用率计算
- 计算cpu使用率
- 计算CPU使用率
- CPU使用率计算
- htop CPU使用率计算
- CPU使用率的计算
- cpu使用率的计算
- Linux计算cpu使用率
- Perl计算cpu使用率方法
- CPU使用率的计算【总结】
- Linux 手动计算CPU使用率
- java实现计算cpu使用率
- Android 如何计算CPU使用率(CPU Usage)
- Android 如何计算CPU使用率(CPU Usage)
- 计算cpu使用率和判断服务器断开
- Linux平台Cpu使用率的计算
- C++计算windows的cpu使用率
- Linux平台Cpu使用率的计算
- ACM的准备之路(蓝桥杯2)
- 菜鸟学习历程【3】 数据类型、运算符、语句、数组(1)
- JS数组随机排序
- Mac 配置jdk & Maven环境变量配置
- 路由的使用流程
- RTT CPU使用率计算
- 我的心得
- 列表(无序列表、有序列表、自定义列表)
- servlet的生命周期
- TypeScript自动化工作流程(下)
- 算法---程序的灵魂,没错就是灵魂!
- Composer安装/镜像/常见命令/安装依赖/初始化/版本号
- 软考 递归式时间复杂度计算详解
- hdu 2087 剪花布条