当前位置: 技术问答>linux和unix
如何计算板卡的使用CPU使用率
来源: 互联网 发布时间:2016-04-02
本文导语: 在板卡系统:arm-linux 执行:cat /proc/stat 输出头两行: cpu 2912350 0 1895005 22695525 0 3350886 1871662 0 cpu0 2912350 0 1895005 22695525 0 3350886 1871662 0 通过上面数据怎么计算出当前CPU使用率.... | 没弄...
在板卡系统:arm-linux
执行:cat /proc/stat
输出头两行:
cpu 2912350 0 1895005 22695525 0 3350886 1871662 0
cpu0 2912350 0 1895005 22695525 0 3350886 1871662 0
通过上面数据怎么计算出当前CPU使用率....
执行:cat /proc/stat
输出头两行:
cpu 2912350 0 1895005 22695525 0 3350886 1871662 0
cpu0 2912350 0 1895005 22695525 0 3350886 1871662 0
通过上面数据怎么计算出当前CPU使用率....
|
没弄过, MARK!
|
我们的做法是定时(比如说1s)去读/proc/stat的数据,把相应字段的值取差值,再用简单的除法,结果就是CPU的基于1S抽样算出的瞬时CPU值。还是相当准确的,如果要更准确,减小抽样时差,但不要小于0.05s)。基本上top也是用的这个原理。
|
|
给你个计算CPU的代码吧,其实就是根据top改的
#include
#include
#include
#include
#include
#define NCPUSTATES 5
static char * skip_token(const char *p)
{
while (isspace(*p)) p++;
while (*p && !isspace(*p)) p++;
return (char *)p;
}
long percentages( int cnt, int *out, long *new, long *old, long *diffs)
{
int i;
long change;
long total_change;
long *dp;
long half_total;
/* initialization */
total_change = 0;
dp = diffs;
/* calculate changes for each state and the overall change */
for (i = 0; i
#include
#include
#include
#include
#include
#define NCPUSTATES 5
static char * skip_token(const char *p)
{
while (isspace(*p)) p++;
while (*p && !isspace(*p)) p++;
return (char *)p;
}
long percentages( int cnt, int *out, long *new, long *old, long *diffs)
{
int i;
long change;
long total_change;
long *dp;
long half_total;
/* initialization */
total_change = 0;
dp = diffs;
/* calculate changes for each state and the overall change */
for (i = 0; i