是否可以测量应用程序使用的“CPU时间”?

时间:2014-02-10 19:31:39

标签: android performance cpu-usage

我正在编写一个Android应用,可以在其安装的设备上提供统计信息,并想知道是否可以确定以下指标。

CPU为特定进程提供服务的时间。我正在测试的设备有一个4核心处理器,我想花时间不管天气如何,这个过程都在前台或后台。使用top可以获得进程占用CPU的百分比,有没有办法确定时间(以秒或时钟周期为单位)?

谢谢

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

如果您可以使用它,gprof实际上可以成为一个好工具。

它只对CPU时间进行采样,其采样通常为每10毫秒。

因此,看看它获得了多少样本,无论它们属于哪种函数,乘以10,这就是程序使用的毫秒数。