一、内核编译选项

make menuconfig

General setup--->
[*] Profiling support
<*> OProfile system profiling

二、popt移植

下载源码:http://rpm5.org/files/popt/    popt-1.16.tar.gz

解压缩后,在popt-1.16当前目录下,新建build.sh,编辑内容如下:

---------------------------------------分割线----------------------------------------------------

#!/bin/sh
./configure --host=arm-linux \
--prefix=/home/eastmoon/rootfs \
--target=arm-linux

---------------------------------------分割线----------------------------------------------------

设置下build.sh的权限后,

./build.sh 配置好以后,

make下,

再make install就ok了。

然后可以看到在/home/eastmoon/rootfs中就会有相关的.so等库了。

二、binutils移植

下载源码:http://ftp.gnu.org/gnu/binutils/   binutils-2.22.tar.gz

解压缩后,在binutils-2.22当前目录下,新建build.sh,编辑内容如下:

---------------------------------------分割线----------------------------------------------------

#!/bin/sh
./configure --host=arm-linux \
--with-kernel-support \
--prefix=/home/eastmoon/rootfs \
--target=arm-linux \
--disable-nls

---------------------------------------分割线----------------------------------------------------

设置下build.sh的权限后,

./build.sh 配置好以后,

修改gas/Makefile,WARN_CFLAGS中去掉-Werror

因为有些机器是64位的,编译的.a在oprofile中链接会有问题。所以,这时候

vim config.status

修改$[“CFLAGS”]=”-g–O2” 为 $[“CFLAGS”]=”-g–O2  -fPIC”.

接着

make下,

再make install就ok了。

然后可以看到在/home/eastmoon/rootfs中就会有相关的.so等库了。

三、oprofile移植

下载源码:http://oprofile.sourceforge.net/download/    oprofile-0.9.9.tar.gz

解压缩后,在oprofile-0.9.9当前目录下,新建build.sh,编辑内容如下:

---------------------------------------分割线----------------------------------------------------

#!/bin/sh
CFLGAS+=-I//home/eastmoon/rootfs/include \
CXXFLGAS+=-I//home/eastmoon/rootfs/include\
LDFLGAS+=-L//home/eastmoon/rootfs/lib \
./configure --host=arm-linux \
--with-kernel-support \
--prefix=/home/eastmoon/rootfs \
--target=arm-linux \

---------------------------------------分割线----------------------------------------------------

设置下build.sh的权限后,

./build.sh 配置好以后,

接着

make下,

再make install就ok了。

然后可以看到在/home/eastmoon/rootfs中就会有相关的应用程序了。

四、应用

编译的时候有指定的OPROFILE_EVENTS_DIR的路径。所以,在使用的时候

export  OPROFILE_EVENTS_DIR=’/home/oprofile’

把/home/eastmoon/rootfs/share/oprofile下的文件,拷贝到/home/oprofile下。

最后,就可以使用oprofile了

opcontrol –setup–no-vmlinux

opcontrol –init

opcontrol –start  //启动

opcontrol –dump  //采集

opcontrol –stop   //停止

opreport     //查看

opreport –l   //查看,包括函数

具体的其他功能可以百度查看,这里只是移植和简单的应用。

和菜鸟一起学linux之linux性能分析工具oprofile移植的更多相关文章

  1. perf学习-linux自带性能分析工具

    目前在做性能分析的事情,之前没怎么接触perf,找了几篇文章梳理了一下,按照问题的形式记录在这里. 方便自己查看.   什么是perf? linux性能调优工具,32内核以上自带的工具,软件性能分析. ...

  2. 1.linux服务器的性能分析与优化

    [教程主题]:1.linux服务器的性能分析与优化 [课程录制]: 创E [主要内容] [1]影响Linux服务器性能的因素 操作系统级 CPU 目前大部分CPU在同一时间只能运行一个线程,超线程的处 ...

  3. Linux性能分析工具的安装和使用

    转自:http://blog.chinaunix.net/uid-26488891-id-3118279.html Normal 0 7.8 磅 0 2 false false false EN-US ...

  4. 高性能Linux服务器 第10章 基于Linux服务器的性能分析与优化

    高性能Linux服务器 第10章    基于Linux服务器的性能分析与优化 作为一名Linux系统管理员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行.但硬件问题.软件问题.网络环境等 ...

  5. linux命令(4):top 命令(性能分析工具)

    linux 的top命令详解 简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个 ...

  6. Linux性能分析工具top命令详解

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析. top命令说明 [www.linuxidc.com@linuxidc-t-tomcat-1 ...

  7. Linux性能分析工具与图形化方法

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~. 作者:赵坤|腾讯魔王工作室后台开发工程师 在项目开发中,经常会遇到程序启动时间过长.CPU使用率过高等问题,这个时候需要依靠性能分析工具来 ...

  8. Linux 性能分析工具汇总合集

    出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章.本文也可以作为检验基础知识的指标,另外文章涵盖了一个系统的方方面面.如果没有完善的计算机系统知识,网络知识和操作系统知识, ...

  9. [转]Linux性能分析工具汇总合集

    出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章.本文也可以作为检验基础知识的指标,另外文章涵盖了一个系统的方方面面.如果没有完善的计算机系统知识,网络知识和操作系统知识, ...

随机推荐

  1. 15 ActionBar 总结

    ActionBar 一, 说明 是一个动作栏 是窗口特性 提供给用户动作 导航模式 可以适配不同的屏幕 二, ActionBar 提供的功能 1. 显示菜单项 always:总是展示到ActionBa ...

  2. 【java多线程系列】java内存模型与指令重排序

    在多线程编程中,需要处理两个最核心的问题,线程之间如何通信及线程之间如何同步,线程之间通信指的是线程之间通过何种机制交换信息,同步指的是如何控制不同线程之间操作发生的相对顺序.很多读者可能会说这还不简 ...

  3. UNIX网络编程——Socket/TCP粘包、多包和少包, 断包

    为什么TCP 会粘包 前几天,调试mina的TCP通信, 第一个协议包解析正常,第二个数据包不完整.为什么会这样吗,我们用mina这样通信框架,还会出现这种问题? TCP(transport cont ...

  4. UNIX网络编程——tcp流协议产生的粘包问题和解决方案

    我们在前面曾经说过,发送端可以是一K一K地发送数据,而接收端的应用程序可以两K两K地提走数据,当然也有可能一次提走3K或6K数据,或者一次只提走几个字节的数据,也就是说,应用程序所看到的数据是一个整体 ...

  5. tomcat配置集群

    在Tomcat中使用集群功能相对简单.最简单的用法是直接在server.xml文件的或节点下添加 <Cluster className="org.apache.catalina.ha. ...

  6. UNIX环境高级编程——进程关系

    一.终端的概念 在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(Controlling Terminal),控制终端是保存在PCB中的信息,而我们 ...

  7. moonmq: 用go实现的高性能message queue

    介绍 moonmq是一个用go实现的高性能消息队列系统,后续准备用于我们消息推送服务以及各个后台的异步任务. 在设计上面,moonmq主要借鉴了rabbitmq以及rocketmq相关的思想,但是做了 ...

  8. iOS编程中的音频知识(一):文件格式和数据格式,哦!天哪

    要明白实际上每个音频文件都有2各部分组成:它的文件格式(或称之为音频容器),和它的数据格式(或称之为音频编码). 文件格式(audio containers)描述文件自身的格式.实际内部的音频数据可以 ...

  9. Ext JS 6正式版的GPL版本下载地址

    下面是Ext JS 6正式版的GPL版本下载地址 https://www.sencha.com/legal/gpl/

  10. ad network

    全称:Advertising network.即"在线广告联盟".一种介于想出售广告空间的网站与想在网站上刊登广告的广告主之间的平台.比较知名的公司有Google的AdSense. ...