專案背景:在評估軟體資源使用率的時候,需要統計cpu和記憶體最大使用率,因此需要監測軟體執行工程中的cpu和記憶體使用率的變化,並記錄最大值
1.記憶體統計會比較簡單,只需要查詢電腦中最大記憶體,以及實時記憶體使用情況
1 #include 2 #include 3 #include 4 #include5view codedouble filetimetodouble(filetime*pfiletime)69
10double
m_foldcpuidletime;
11double
m_foldcpukerneltime;
12double
m_foldcpuusertime;
1314
1516
bool initialize()
1727
return
flag;28}
2930
intgetcpuuserate()
3144
return
ncpuuserate;45}
46int
getmemoryusepercentage()
4762
6364
intmain()
6573
else
7484
85if (memoryuserate >maxmemoryusepercentage)
8689
90 std::cout << "
當前cpu使用率:
"<< cpuuserate <<91"
最大cpu使用率:
"當前記憶體:
"<< memoryuserate <<92"
最大記憶體:
"<< maxmemoryusepercentage <<:endl>
9394}95
}96return0;
97 }
2.cpu使用率更複雜
超執行緒是intel最早提出一項技術,最早出現在2023年的pentium4上。單個採用超執行緒的cpu對於作業系統來說就像有兩個邏輯cpu,為此p4處理器需要多加入乙個logical cpu pointer(邏輯處理單元)。
雖然採用超執行緒技術能同時執行兩個執行緒,但它並不像兩個真正的cpu那樣,每個cpu都具有獨立的資源。當兩個執行緒都同時需要某乙個資源時,其中乙個要暫時停止,並讓出資源,直到這些資源閒置後才能繼續。因此超執行緒的效能並不等於兩顆cpu的效能。
最開始cpu只有乙個核(core),為了提高效能,引入了雙核cpu,四核cpu等,雙核cpu能同時執行兩個執行緒。和超執行緒不同的是,雙核cpu是實打實的有兩個central processing units在乙個cpu chip。
上圖顯示主機板上有1個插槽(socket),這個插槽插著乙個cpu,這個cpu有4個核(core),每個核都使用超執行緒技術,所以這台機器總共有8個邏輯核。
某程序cpu使用率 = 該程序cpu時間 / 總cpu時間。
參考:
linux 在 cpu 記憶體 使用率
cpu ps aux head 1 ps aux sort k3nr head 3 記憶體 ps aux head 1 ps aux sort k4nr head 3 說明 ps aux中 a指代all 所有的程序,u指代userid 執行該程序的使用者id,x指代顯示所有程式,不以終端機來區分 p...
PHP獲取CPU 記憶體使用率
類 class systeminfowindows return path 獲得cpu使用率vbs檔案生成函式 return string 返回vbs檔案路徑 private function getcupusagevbspath 獲得總記憶體及可用物理記憶體json vbs檔案生成函式 retur...
控制CPU使用率
我使用的是ubuntu 14.04版本,用的是自帶的系統監視器來觀察cpu使用率的變化。1.首先來說說怎麼控制cpu使用率,當程式執行乙個死迴圈的時候,使用率就會變成100 而當程式進入idle的時候,使用率就會很低 在別的程式不啟動的情況下 那麼控制cpu使用率就是調整它idle和busy的時間比...