獲取當前程序的CPU使用率和記憶體使用

2021-06-01 02:08:43 字數 1616 閱讀 2654

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 ...