我正在编写一个Android应用,可以在其安装的设备上提供统计信息,并想知道是否可以确定以下指标。
CPU为特定进程提供服务的时间。我正在测试的设备有一个4核心处理器,我想花时间不管天气如何,这个过程都在前台或后台。使用top可以获得进程占用CPU的百分比,有没有办法确定时间(以秒或时钟周期为单位)?
谢谢
答案 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,这就是程序使用的毫秒数。