cpu使用率:
int getprocessinfo::getprocessnumber()
// 時間格式轉換
__int64 getprocessinfo::filetimetoint64(const filetime& time)
double getprocessinfo::get_cpu_usage()
getsystemtimeasfiletime(&now);
handle hprocess = openprocess(process_query_information/*process_all_access*/, false, m_processid);
if (!hprocess)
if (!getprocesstimes(hprocess, &creation_time, &exit_time, &kernel_time, &user_time))
system_time = (filetimetoint64(kernel_time) + filetimetoint64(user_time)) / processor_count_; //cpu使用時間
time = filetimetoint64(now); //現在的時間
last_system_time_ = system_time;
last_time_ = time;
closehandle( hprocess );
sleep(1000);
hprocess = openprocess(process_query_information/*process_all_access*/, false, m_processid);
if (!hprocess)
if (!getprocesstimes(hprocess, &creation_time, &exit_time, &kernel_time, &user_time))
getsystemtimeasfiletime(&now);
system_time = (filetimetoint64(kernel_time) + filetimetoint64(user_time)) / processor_count_; //cpu使用時間
time = filetimetoint64(now); //現在的時間
closehandle( hprocess );
cpu = ((double)(system_time - last_system_time_) / (double)(time - last_time_)) * 100;
return cpu;
}
記憶體使用:
void getprocessinfo::printmemoryinfo()
dwpriorityclass = 0;
dwpriorityclass = getpriorityclass( hprocess );
if( !dwpriorityclass )
if (getprocessmemoryinfo( hprocess, &pmc, sizeof(pmc)) )
closehandle( hprocess );
}
系統資訊獲取 5,獲取CPU當前使用率
cpu資源看做是乙個個的時間片,統計cpu使用率也是計算在一段時間內忙碌的時間佔比。我們知道getsystemtime可以得到當前系統時間,另外乙個名字類似的函式,getsystemtimes可以得到三種不同的時間 自開機以來 空閒時間,核心時間和使用者時間。函式原型 bool winapi get...
如何獲取CPU使用率
這幾天做乙個分布式的軟體,用到了這些知識,暫時沒有時間具體介紹自己的收穫和心得,先把 載加修改 貼上吧,以後再補充。一 獲取當前程序的cpu使用率 記憶體使用量 總的io位元組數。processstatus.h ifndef process status h define process statu...
獲取系統CPU 使用率
來看一下 filetime的結構 typedef struct filetime filetime,pfiletime,lpfiletime 這個結構是64位的。ok,上個我除錯的截圖來證明一下,為什麼出錯 eax 是32的,shl eax,20h 也是還是他自己。沒有任何改變 注意到 int64 ...