openwrt+perf+热点函数分析

1.1 背景
最近玩起了openwrt,perf工具对分析程序性能有帮助,可以分析热点函数,所以就想把它搞上系统上,折腾挺长时间的

*1.2 准备工作 *
安装vmware,安装ubuntu,把ubuntu设置成桥接(或者nat也行,配置成桥接目的是为了能让windows能通过xshell工具或者winscp工具和ubunut传输文件),并能上网,编译openwrt需要联网,编译过程中,会自动下载一些所有需要的lib,第一次编译openwrt固件需要很长时间。

*1.3 配置内核开始编译 *
make menuconfig 进入内核配置界面,“/”搜索perf工具,需要开启哪些编译选项。

开启perf工具需要glibc
依次进入以下选项,进行选择


按下"/"搜索glic的位置在哪




"(x)"表示不选中,”( )“表示选中



perf工具可以选上了

1.4 退出,进入主界面
make V=99编译,(如果是第一次编译最好不要用多线程,第一次成功后可以make V=99 -j(n)(多线程编译)
经过漫长的编译,终于成功,第一次编译,可能要10个小时,中间出错的话,绝招是缺啥补啥,编译好的固件大小为9.8M

*1.5 烧写到mt7688的板子上看看效果如何 *
perf top -p 进程pid -K -g

看不到函数名字是因为除了应用程序要加-g 参数编译之后,像libc.so,等等库也要加-g参数编译,openwrt默认是把库strip了,自己写的程序,可以自己写makefile加-g编译,像这些libc.so这些库的话,因为openwrt编译过程,会把libc.so保留一个没有strip的,所以直接编译完固件之后
在固件源码处find xxx -iname libc.so,把没有strip的库用winwscp工具,传到mt7688的/lib/下面(记录是以覆盖的方式,不要删除libc.so,再拷贝),再次使用perf工具,就能看到libc.so的函数名了,其它库也一样。

1.6 后记
不同版本的openwrt,配置menuconfig选择方式可能会有点不一样,用好搜索”/“工具,万变不离其宗。

1.7 参考
https://www.ibm.com/developerworks/cn/linux/l-cn-perf1/
https://decodezp.github.io/2019/01/15/openwrt-perf/

转载于:https://my.oschina.net/u/4149215/blog/3070428

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值