Oprofile 移植
工具的编译参考
http://blog.csdn.net/louieuser/article/details/6152175
工具使用:
1.创建一个AVD,启动模拟器时,用我们编译好的kernel替换SDK自带的kernel
C:\Users\maricoliu>emulator @android2.3 -partition-size 300 -kernel ~\kernel-qemu
注:由于要向系统中push我们的程序,请分配足够的大小,否则会出现no space left on device错误,用-partition-size指定大小
2.安装busybox,Oprofile
将我们编译好的busybox和Oprofile装入模拟器
进入adb shell中,创建两个文件夹
#mkdir /data/busybox
#mkdir /data/oprofile
在控制台执行如下命令:
C:\Users\maricoliu>adb push ~\busybox /data/busybox/
Oprofile工具只要将以op开头的文件装入模拟器就可以:
C:\Users\maricoliu>adb push ~\oprofile\opcontrol /data/oprofile/
C:\Users\maricoliu>adb push ~\oprofile\opannotate /data/oprofile/
……(其余不再列出)
回到shell中,安装busybox,增加Oprofile文件的执行权限
#cd /data/busybox
#chmod 777 busybox
#./busybox –install busybox
#cd /data/oprofile
#chmod 777 op*
3.运行Oprofile
#export PATH=$PATH:/data/busybox
#export PATH=$PATH:/data/oprofile
# mount -o remount rw /
# mount -o rw,remount -t yaffs2 /dev/mtdblock3 /system
#ln -s /proc/mounts /etc/mtab (建立一个软连接,后面有说明)
# opcontrol --init //初始化,只需运行一次
# opcontrol --setup --callgraph=2 --session-dir=/result/ --no-vmlinux
# opcontrol --start
opcontrol --start
Using 2.6+ OProfile kernel interface.
Using log file /result/samples/oprofiled.log
Daemon started.
Profiler running.
# opcontrol --status
opcontrol --status
Daemon running: pid 773
Separate options: none
vmlinux file: none
Image filter: none
Call-graph depth: 2
运行你的程序
# opcontrol --dump //收集采样数据
# opcontrol --stop //停止profiler
Stopping profiling.
#opreport --session-dir=/result/ //查看报告
遇到的问题:
1.出现错误 :
test: not found
id: not found
test: not found
grep: not found
test: not found
grep: not found
test: not found
…………
这是由于 Android 提供的命令过于精简,因此需要移植 busybox ,来运行 opcontrol 。按照上面的步骤安装busybox后,任然出现此错误,google后得知,要修改 opcontrol 文件如下:
BINDIR =”/data/busybox”
PATH 中加入 /data/busybox
查看opcontrol源码后发下未加入/data/busybox,现以加入
2.出现错误
./opcontrol --init
grep: /etc/mtab: No such file or directory
grep: /etc/mtab: No such file or directory
Kernel support not available, missing opcontrol --init as root
# touch /etc/mtab
# ./opcontrol --init
Kernel support not available, missing opcontrol --init as root ?
通过对 opcontrol 的分析发现它是通过对执行" grep oprofile /proc/modules >/dev/null " 的返回值为判断条件还进行操作的,开始由于 mtab 文件里没有 oprofile 的相关信息,所以要执行 "mount -t oprofilefs nodev /dev/oprofile >/dev/null" 而linux 标准文件系统在执行了此命令之后将会与之相关的 mount 信息写入 /etc/mtab 中,而执行了umount 之后相关信息将从/etc/mtab文件中删除,而通过相关的操作之后发busybox系统中的 mtab 文件并无任何改变,通过google 之后知道原来新的busybox 使用 /proc/mounts 代替了 /etc/mtab,故在/etc 下建一个指 /proc/mounts 名为 mtab 的链接就绕过这个问题
# ln –s /proc/mounts /etc/mtab
可能会遇到link failed file exists错误,请确保/etc/目录下面没有mtab文件,有的话删除
分享到:
相关推荐
本文将深入探讨Oprofile的移植过程,帮助你将其成功应用到你的板端系统。 **一、Oprofile 简介** 1. **基本概念**:Oprofile 是基于硬件性能计数器的,它可以监控CPU周期、缓存命中率、分支预测错误等关键性能指标...
【移植oprofile到JK2410开发板】 在Linux平台中,系统级性能分析工具oprofile是一个不可或缺的工具,尤其对于开发者来说,它能帮助找出系统中的性能瓶颈。本文将详细阐述如何将oprofile移植到JK2410开发板上。 1. ...
移植Oprofile到特定的硬件平台可能会遇到兼容性问题,而且数据分析需要一定的专业知识。此外,Oprofile可能会影响系统性能,因为它本身也是一个资源消耗者。 **七、相关附件说明** 可能包含Oprofile的配置文件、...
#### 三、Oprofile在Android系统中的移植 Oprofile的移植主要涉及以下几个方面的工作: ##### 3.1 准备阶段 1. **激活内核Oprofile支持**:通过`makemenuconfig`命令进入内核配置界面,在“General setup”中开启...
Android Linux 下用 OProfile 工具分析性能 OProfile 是一种用于 Linux 的评测工具,能够帮助用户识别系统中的性能瓶颈。该工具可以工作在不同的体系结构上,包括 IA32, IA64 和 AMD Athlon 系列。OProfile 的优点...
**Oprofile概述** Oprofile是Linux系统中的一款性能分析工具,它可以帮助开发者深入了解系统的运行状况,定位程序中的性能瓶颈。Oprofile通过硬件事件采样,收集系统层面的运行数据,包括CPU指令执行、内存访问、...
4. **收集数据**: `oprofile-collect`命令将采样数据收集到一个文件中,便于后续分析。 5. **符号解析**: `oprofile-symbolize`将原始的硬件事件数据转换为可读的代码位置信息。 6. **报告生成**: `oprofile-view`或...
3. **动态库分析**:除了应用程序自身,Oprofile还可以追踪到调用的动态链接库,帮助识别性能问题可能出在哪里。 4. **多线程支持**:在多核或多处理器系统上,Oprofile能够对每个CPU核心上的活动进行独立采样,...
- 分析结果的准确性受到采样策略和样本数量的影响,需要适当调整参数以获取更精确的分析结果。 总的来说,Oprofile是一个强大的性能分析工具,对于Linux开发和维护人员来说,它是理解和优化系统性能不可或缺的武器...
如果从官方仓库无法获取到OProfile 0.9.99,你可能需要从源代码编译安装。这通常涉及以下步骤: 1. **下载源码**: 获取OProfile 0.9.99的源代码,解压至工作目录。 2. **配置**: 在源码目录下运行`./configure`...
**Oprofile:Linux系统资源分析神器** Oprofile是一款强大的Linux性能分析工具,它可以在系统级别对各种硬件事件进行采样,如CPU周期、缓存命中、指令执行等,从而帮助开发者和系统管理员深入理解系统运行时的行为...
Android提供了多种性能分析工具,其中`OProfile`是一款强大的系统级性能分析器,适用于Linux系统,包括Android。本文将深入探讨`OProfile`及其在Android上的应用。 `OProfile`是一款开源的、跨平台的性能分析工具,...
oProfile是用于Linux的若干种评测和性能监控工具中的一种,它可以工作在不同的体系结构上,包括MIPS、ARM、IA32、IA64和AMD。oProfile包含在Linux2.5和更高版本的内核中,也包含在大多数较新的Linux版本中,包括...
通过利用现代微处理器内置的硬件性能计数器,OProfile能够收集到非常详尽的数据,并且这些数据可以被转化为有用的系统性能信息。 #### 三、OProfile的特点 1. **无侵入性**:使用OProfile不需要对目标程序进行任何...
- **精度**:由于`gprof`依赖于编译器支持,其精确度受到限制;`oprofile`则更依赖于硬件事件,可能提供更准确的数据。 - **易用性**:`gprof`的使用相对简单,适合初学者;`oprofile`的配置和使用可能更为复杂,但...
### OProfile 手册知识点详解 #### 一、引言 **OProfile**是一款功能强大的Linux性能分析工具,主要用于监控程序执行过程中的各种硬件计数器事件,从而帮助开发者识别性能瓶颈并进行优化。该手册提供了OProfile...
完成上述步骤后,popt和binutils的库文件就会被安装到指定目录,接下来在编译Oprofile时,需要确保链接器能够找到这些库。在Oprofile的配置阶段,也需要指定binutils和popt的安装路径,例如: ```bash ./configure ...
Oprofile 的起源可以追溯到 John Levon 在曼彻斯特维多利亚大学攻读硕士学位期间的一个项目。最初,该项目是以 DEC Continuous Profiling Infrastructure (DCPI) 为模型设计的。DCPI 是一个在 Alpha DEC Ultrix 上...
官方离线安装包,测试可用。请使用rpm -ivh [rpm完整包名] 进行安装