第一步:
檢視/proc/stat
這裡面統計的是cpu的資訊。第一行是所有cpu的統計資訊。我們需要前4個數字
cpu 130216 19944 162525 1491240 3784 24749 17773 0 0 0
前四位分別表示:
user,nice, system, idle
將他們相加得到total_cpu
第二步:
檢視/proc/數字(pid)/stat
這裡統計的是某個程序的資訊,路徑中的數字就是程序的pid。
這裡有52個數字。我們需要第14和15個,表示該程式的使用者態時間和核心態時間
將這兩個數字相加得到proc_cpu
第三步檢視cpu個數
再/proc/cpuinfo裡面檢視
記為num_cpu
第四步統計一次total_cpu和proc_cpu記為total_cpu1和proc_cpu1
sleep3秒鐘
再統計一次total_cpu和proc_cpu記為total_cpu2和proc_cpu2
然後根據公式統計出cpu佔用率
num_cpu*(proc_cpu2-proc_cpu1)*100.0/(total_cpu2-total_cpu1)
**
#include #include #include #include #include #includefile *cpulog;
void shutdowngetcpu()
//獲取總的cpu時間
unsigned long get_cpu_total_occupy();
fd =fopen("/proc/stat","r");
fgets(buff,sizeof(buff),fd);
char name[64]=;
sscanf(buff,"%s %ld %ld %ld %ld %ld %ld %ld %ld %ld %ld",name,&temp[0],&temp[1],&temp[2],&temp[3],&temp[4],&temp[5],&temp[6],&temp[7],&temp[8],&temp[9]);
fclose(fd);
//temp[0]+temp[1]+temp[2]+temp[3]+temp[4]+temp[5]+temp[6]+temp[7]+temp[8]+temp[9]
return temp[0]+temp[1]+temp[2]+temp[3];}
//獲取程序的cpu時間
int get_cpu_proc_occupy(unsigned int pid);
file *fd;
char line_buff[1024]=;
sprintf(file_name,"/proc/%d/stat",pid);
fd = fopen(file_name,"r");
if(null == fd)
fgets(line_buff,sizeof(line_buff),fd);
char temp[3][64];
int i,cnt=0,p=0;
int len=strlen(line_buff);
for(i=0;i100.0)pcpu=100.0;
} else
printf("total is 0\n");
return pcpu;}
//程序本身
int get_pid(const char* process_name)
file *pstr = popen(cmd,"r");
if(pstr == null)
char buff[512];
memset(buff, 0, sizeof(buff));
if(null == fgets(buff, 512, pstr))
return atoi(buff);}
int main(int argc, char *ar**)
fclose(cpulog);
return 0;
}
檢視CPU佔用率
檢視系統cpu佔用率 在跑一些程式,例如deep learning的時候,總是希望檢視一下cpu gpu 記憶體的使用率 1.cpu 記憶體 使用top命令 top 有乙個更直觀的監測工具,叫htopsu doap t ge tins tall htop s ud oapt get inst all...
CPU測試 檢視cpu佔用率
一 使用命令adb shell top m 10 s cpu t 顯示程序名稱,s 按指定行排序,n 在退出前重新整理幾次,d 重新整理間隔,m 顯示最大數量 如下圖 引數含義 pid progressidentification,應用程式id s 程序的狀態,其中s表示休眠,r表示正在執行,z表示...
如何檢視CPU 佔用率
以下是檢視cpu佔用率的乙個指令碼 export home arbsfr sfr entreprise sfre3 cpu record.sh and you can run it as below sh cpu record.sh bin sh usr ucb ps auxww grep cpu ...