2011-05-26 81 views
8

我正在製作一個小型的Android應用程序,以顯示Windows任務管理器中選項卡性能的當前總CPU使用率。 我使用「top -m 1 -n 1 -d 1」來獲取CPU使用率,但我並不真正瞭解「top」的結果。Android中的Descrip「top」命令

像其結果是:

User 5%, system 15%, IOW 0%, IRQ 0% 
User 5 + Nice 0 + Sys 14 + Idle 73 + IOW 0 + IRQ 0 + SIRQ 0 = 92 
PID  CPU% S #THR VSS RSS UID  Name 
213  11% R 1  900K 340K app_16 top 

CPU使用率= ??? 我如何計算總CPU使用率?

回答

10

對於這個問題,接受的答案不正確。輸出的第二行是在該分組中啓動的線程/進程的數量。上面的CPU使用率爲20%。其中5%來自用戶應用程序,15%來自系統應用程序。您有73個空閒線程,14個系統線程和5個用戶線程(根據第二行)。例如,

這裏是我的Droid的當前頂級快照。

User 6%, System 5%, IOW 0%, IRQ 0% 
User 21 + Nice 0 + Sys 16 + Idle 270 + IOW 0 + IRQ 3 + SIRQ 0 = 310 

    PID CPU% S #THR  VSS  RSS PCY UID  Name 
30994 4% S 19 134912K 24140K bg app_24 edu.vu.isis.ammo.spotreport 
1021 3% S 57 217400K 58504K fg system system_server 
20911 2% R  1 880K 400K fg shell top 
1053 0% S  1  0K  0K fg root  tiwlan_wq 
    995 0% S  2 1272K 128K fg compass /system/bin/akmd2 

根據接受的答案,我會有310%的CPU使用率,當這實際上只是線程數。我很確定我實際上只使用了11%的CPU,其中前3個進程使用了​​總數的9%。

+0

如果cpu有多核心,那麼解釋是什麼? – Rilwan 2014-01-17 15:09:35

+1

不正確,請參閱下面的正確答案(http://stackoverflow.com/a/15497011/2201815) – Denisigo 2016-12-22 12:04:32

-4

CPU利用率百分比爲(100-idle_percentage),或多或少。在你的片段中,Idle的百分比是73,這使得你的CPU使用率達到27%。

至於每個進程的CPU使用情況,這將是您最後2行的第二列。

+0

感謝您的建議,這對我有很大的幫助。 – VietAnh 2011-05-27 02:24:27

+1

正如@jedmodson提到的是他的回答,從發佈的例子'73'是空閒線程的數量,而不是閒置百分比。 – HeatfanJohn 2013-01-09 17:43:52

-2

top命令是一個linux命令。 看一看here

感謝 迪帕克

+0

我閱讀本手冊,但不明白如何計算CPU使用率。 – VietAnh 2011-05-27 02:27:04

5

的實際問題的答案是簡單直接 - 可以從機器人頂部的輸出的第一行

User 5%, system 15%, IOW 0%, IRQ 0% 

總計=所有百分比的總和= 5 + 15 = 20%

計算

關於第二行的其他答案是錯誤的。第二行實際上給出了該特定狀態下的調度程序時間 - 用戶/ sys/idle/iow在jiffies(通常爲10ms)之間,在top的一個輸出和top的下一個輸出之間 - 在OP的情況下爲top -d 1 - 每秒打印一次使用 - 每個核心的總共約100個(假設每個jiffy爲10ms) - 這與百分比值相似。

User 5 + Nice 0 + Sys 14 + Idle 73 + IOW 0 + IRQ 0 + SIRQ 0 = 92 

然而,該值會更多,如果-d較高或者有一個以上的核

User 21 + Nice 0 + Sys 16 + Idle 270 + IOW 0 + IRQ 3 + SIRQ 0 = 310 

這可能是沒有任何-d選項,這樣top需要3秒的默認延遲= 300 jiffies。

請參閱AOSP top sourcecode以獲取如何計算每個值的完整邏輯。

+0

這應該是被接受的答案。第二行給出了花費的時間,而不是線程。 – 2014-12-04 08:01:03