Linux c獲取CPU佔用率

2021-09-25 07:45:41 字數 2046 閱讀 2173

第一步:

檢視/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 ...