Oprofile编译与安装

  1. 概述

oProfile是用于Linux的若干种评测和性能监控工具中的一种,它可以工作在不同的体系结构上,包括MIPS、ARM、IA32、IA64和AMD。oProfile包含在Linux2.5和更高版本的内核中,也包含在大多数较新的Linux版本中,包括RedHat9。
oProfile是Linux平台上的一个功能强大的性能分析工具,支持两种采样(sampling)方式:基于事件的采样(eventbased)和基于时间的采样(timebased)。

基于事件的采样是oProfile只记录特定事件(比如L2 cache miss)的发生次数,当达到用户设定的定值时oProfile就记录一下(采一个样)。这种方式需要CPU内部有性能计数器(performace counter)。

基于时间的采样是oProfile借助OS时钟中断的机制,每个时钟中断oProfile都会记录一次(采一次样),引入此种采样方式的目的在于提供对没有性能计数器的CPU的支持,其精度相对于基于事件的采样要低。因为要借助OS时钟中断的支持,对禁用中断的代码oProfile不能对其进行分析。

oProfile在Linux上分两部分,一个是内核模块(oprofile.ko),一个为用户空间的守护进程(oprofiled)。前者负责访问性能计数器或者注册基于时间采样的函数(使用register_timer_hook注册之,使时钟中断处理程序最后执行profile_tick时可以访问之),并采样置于内核的缓冲区内。后者在后台运行,负责从内核空间收集数据,写入文件。

oprofile-1.0.0,下载地址:http://sourceforge.net/projects/oprofile/files/oprofile/
安装:

./configure make & sudo make install

  • ERROR1:configure:error:popt library not found

下载popt-1.16,下载地址:http://www.linuxfromscratch.org/blfs/view/svn/general/popt.html
./configure make & sudo make install
继续进入oprofile目录执行
./configure

  • ERROR2:configure:error: liberty library not found

下载binutils-2.25,下载地址:http://ftp.gnu.org/gnu/binutils/?C=M;O=D

./configure --with-sysroots  
make clean  
make  
sudo make install  

继续进入到oprofile目录执行./configure

  • ERROR3:configure:error:liberty library not found

该库也是在binutils中,在libiberty下,由于libiberty的configure没有提供--enable-shared选项,所以需要我们自己制作so文件,编辑Makefile,加上-fPIC编译选项,然后利用make gcc生成so:

cd libiberty //进入该目录  
./configure  //完成之后会有个Makefile文件产生  
vi Makefile  //编辑该文件,找到并修改该行为: CFLAGS = -g -O2 -fPIC 保存  
make clean  
make  
gcc -shared *.o -o libiberty.so  //生成.so文件,把该文件拷到/usr/lib中  
sudo cp libiberty.so /usr/lib/libiberty.so 

最后还需要bfd的动态链接库,也是在binutils中,在bfd中,由于自带的configure可以加入--enable-shared,所以可以利用该参数自动生成.so文件到/usr/lib中

cd bfd  
./configure --enable-shared  
make clean  
make  
sudo make install  

最后回到oprofile目录中再安装一遍:

./configure  
make clean  
make  
sudo make install  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,906评论 9 468
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,187评论 2 33
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,442评论 19 139
  • 我们说的Linux其实指的就是 内核(kernel)而已。这个内核控制你主机的所有硬件并提供系统所有的功能,所以它...
    Zhang21阅读 12,158评论 0 18
  • 姓名:吴兆阳 学号:14020199009 转自韦东山 嵌牛导读:对嵌入式初学者,没有足够的视野选择一个合适投入方...
    吴兆阳阅读 7,020评论 0 4