2016-11-08 48 views
0

我想看看我的應用程序在Android中的CPU使用情況。爲此,我使用了top和dumpsys cpuinfo。我計算了最高命令的5分鐘平均值(CPU測量間隔1秒)。例如,一旦我在5分鐘內獲得了19%的應用程序,而下一次我在5分鐘內獲得了17%。我對dumpsys也一樣。他們的結果稍有不同。TOP命令vs dumpsys cpuinfo:哪一個更準確?

主要問題是: 比另一個更精確嗎?

我需要CPU使用率的高精度。

此外,我可以更改dumpsys cpuinfo的時間跨度,以便在最近5分鐘內給出平均值嗎?

更新: 它不是一個像這樣的重複問題one

+0

[如何從TOP命令獲得更高的「CPU%」精度?](http://stackoverflow.com/questions/ 15148193 /如何獲得更高精度的cpu,而不是從最高命令) –

+0

@Alex P:它不是我在徹底閱讀該線程後發佈的那個問題的重複。 – utengr

回答

0

我建議去與dumpsys。根據我的經驗,TOP從各種來源獲得信息,包括一些直接和一些估計。估計在早期架構中是必要的,因爲沒有任何方法可以直接衡量某些統計數據。現在,許多這些測量結果都可以從最底層獲得。 TOP的主要問題是確定它是否已更新爲直接獲取這些測量結果,還是仍在估算它們。

相反,dumpsys gets its info from /proc。這些測量值處於最低水平或非常接近。因此,隨着體系結構的變化,/ proc更有可能被更新。

問題的第二部分提出了/ proc的一個缺陷。/proc通常記錄很差,包括採樣率等。我還沒有看到可以設置/ proc(和dumpsys)採樣率的情況,但這並不意味着這種能力不存在。 (通常,採樣率實際上是隨着數據一起轉儲的。)

+0

感謝您的解釋。我認爲dumpsys cpuinfo顯示最近5-6秒的信息。難道是我以1秒的間隔通過腳本運行此命令,然後將結果平均超過5或任何特定時間段?另一個問題:我如何獲得小數點後面的dumpsys cpuinfo?對於頂部,我使用了busybox。 – utengr