Android手机系统的性能测试工具

Nerissa ·
更新时间:2024-11-14
· 522 次阅读

Android手机系统的性能测试工具

  Android应用的性能如何测试?JAVA层面可以用TraceView,可是用NDK开发出来的是so,TraceView跟踪不了怎么办?问了Google大神,答案是OProfile!

  Oprofile 是Linux系统下一个低开销的系统全局的性能监视工具,利用处理器上所包含的专用的性能监视硬件(若没有性能监视硬件则使用一个基于计时器的代用品)来收集与性能相关的数据样品。它获得关于内核以及系统上的可执行文件的信息,例如内存是何时被引用的;L2缓存请求的数量;收到的硬件中断数量等。

  Oprofile的特点如下:

  l 无需重新编译源代码,如果不进行源代码及分析,连调试信息(-g option to gclearcase/" target="_blank" >cc)也不是必须的。

  l 只在内核中插入一个模块。

  l 可以分析运行于系统之上的所有代码(禁用中断的代码除外)

  l 系统的额外开销小,Oprofile会增加1%-8%的系统开销(取决于采样频率)

  l 兼容所有2.2,2.4,2.6内核,可以运行在SMP系统之上

  l 支持主流CPU架构,包括X86、arm、AVR32、mips、powerpc等

  Oprofile要想跑在Andorid上,要满足下面的条件:

  1.内核要支持

  2.要将Oprofile移植到Arm平台上

  下面是移植的全过程:

  一、Oprofile移植

  用到的交叉编译工具如下:

  arm-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

  用到的库如下:

  popt-1.14.tar.gz

  binutils-2.21.tar.gz

  oprofile-0.9.6.tar.gz

  $ tar xvfz arm-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C ~/

  修改~/.bashrc,添加

  export PATH=${PATH}:/home/louieli/arm-2010.09/bin

  $ tar zxvf popt-1.14.tar.gz

  $ cd popt-1.14

  $ ac_cv_va_copy=yes ./configure --with-kernel-support --host=arm-none-linux-gnueabi --prefix=/home/louieli/work/popt

  $ make

  $ make install

  $ tar zxvf binutils-2.21.tar.gz

  $ cd binutils-2.21/

  $ ./configure --with-kernel-support --host=arm-none-linux-gnueabi --prefix=/home/louieli/work/binutils --enable-shared

  $ make LDFLAGS="-all-static"

  可能会出现 cc1: warnings being treated as errors,找到出错文件的Makefile文件,将-Werror去掉

  $ make install

  $ tar zxvf oprofile-0.9.6.tar.gz

  $ cd oprofile-0.9.6/

  $ ./configure --with-kernel-support --host=arm-none-linux-gnueabi --prefix=/home/louieli/work/oprofile/ --with-extra-libs=/home/louieli/work/popt/lib/ --with-extra-includes=/home/louieli/work/popt/include/ --with-binutils=/home/louieli/work/binutils

  $ make LDFLAGS="-all-static -L/home/louieli/work/binutils/lib -Xlinker -R -Xlinker /home/louieli/work/binutils/lib -L/home/louieli/work/popt/lib/"

  $ make install

  用file 命令查看,我们需要的oprofile文件都已经变成可以在android上跑的静态链接文件了

  install.sh: Bourne-Again shell script text executable

  opannotate: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.16, not stripped

  oparchive: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.16, not stripped

  opcontrol: a /system/bin/sh script text executable

  opgprof: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.16, not stripped

  ophelp: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.16, not stripped

  opimport: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.16, not stripped

  opjitconv: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.16, not stripped

  opreport: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.16, not stripped

  oprofiled: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.16, not stripped



性能 性能测试工具 工具 系统 性能测试 测试工具 测试 Android

需要 登录 后方可回复, 如果你还没有账号请 注册新账号