2014-02-10 82 views
2

我正在編寫一個Android應用程序,它在安裝它的設備上提供統計信息,並且想知道是否可以確定以下指標。是否可以測量應用程序使用的「CPU時間」?

CPU花費在特定進程上的時間。我正在測試的設備有一個4核心處理器,我希望花費時間,無論天氣情況,所討論的過程都在前臺還是後臺。使用top可以給出進程佔用的CPU的百分比,有沒有一種方法可以確定時間(以秒或時鐘週期爲單位)?

謝謝

回答

2

看看ps命令。它有格式說明符,即提供CPU和牆壁時間的字段/列。

適用於Android例如CPUTIME:

ps -x 

will yield something that looks like this 
u0_a16 18214 17002 743644 18104 ffffffff 00000000 S com.android.location.fused (u:10, s:13) 

其中u:10和S:13立場的CPU時間花費在過程(來源:http://codeseekah.com/2012/10/21/android-shell-tricks-ps/

我做了一個Linux收集系統統計信息的腳本,你可以在這裏查看:https://gist.github.com/izmailoff/8923008

+0

謝謝你的回答阿列克謝,但是當我從終端上運行ps時,我沒有獲得cputime(可悲)。它看起來像命令被剝離出於Android的目的。這是我運行它時看到的。 shell @ android:/ sys/class $ ps 用戶PID PPID VSIZ RSS WCHAN電腦名稱 – Kmanc

+0

午餐時間對我來說,所以我很快就會回來,但是在我走之前,我發現了一個可能有用的鏈接給其他人想知道的。根據http://codeseekah.com/2012/10/21/android-shell-tricks-ps/你可以使用「ps -x」來獲取進程的用戶和系統時間 – Kmanc

+0

我無法訪問android現在,但也許這個信息將可在/ proc/

0

這是gprof實際上是一個很好的工具,如果你可以使用它。

它只對CPU時間進行採樣,其採樣通常每10毫秒。

因此,看看它有多少個樣本,無論它們的功能是什麼,乘以10,這就是程序使用的毫秒數。

相關問題