为了找到我们Android 2.3@众志小本上的性能瓶颈,我们使用功能强大的linux性能分析工具oprofile

 

首先,我们需要内核的支持。所以,要求北大编译了一个支持Oprofile的内核版本。

 

其次,如何使用?

 

opcontrol --setup

opcontrol --start

opcontrol --stop

 

然后,查看分析报告

opreport

 

 

也可以使用opreport -d 查看所有的细节,包括函数链接符号的地址。

然后通过objdump结合虚拟地址来查看函数名。

 

另外我们可以发现,在android 2.3/externl/目录下也有个oprofile。对于这个层的oprofile,我们有同学有研究:

http://hi.baidu.com/snownight/blog/item/6d81c3ce305fc11193457e56.html

 

具体的Oprofile详细介绍参见:

http://www.ibm.com/developerworks/cn/linux/l-oprof/

 

 

补充:

出现的问题:

 opcontrol --init

 

cat: can't open '/dev/oprofile/cpu_type': No such file or directory

Unable to open cpu_type file for reading

Make sure you have done opcontrol --init

cpu_type 'unset' is not valid

you should upgrade oprofile or force the use of timer mode

解决:

mount -t oprofilefs nodev /dev/oprofile

 

 

http://blog.csdn.net/Kasmile/archive/2009/07/30/4393482.aspx

 

http://blog.csdn.net/louieuser/archive/2011/01/19/6152175.aspx

Arm平台Oprofile移植

 

 

Logo

更多推荐