linux下函数级的CPU占用率分析

 

最近工作上需要降低CPU占用率,想要从最占CPU资源的地方下手,那么怎么才能知道程序中哪部分最占CPU能,在网上查资料,了解到了perf这个工具。

Perf 全名是 Performance Event,是在 Linux 2.6.31 以后内建的系统效能分析工具,它随着核心一并释出。借由perf,应用程序可以利用PMU (Performance Monitoring Unit), tracepoint 和核心内部的特殊计数器(counter) 来进行统计,另外还能同时分析运行中的核心程序码,从而更全面了解应用程序中的效能瓶颈。

首先通过如下命令来查看系统是否启用了perf

cat "/boot/config-`uname -r`" | grep "PERF_EVENT"

如果没有的话,首先通过apt来安装:

 sudo apt-get install linux-tools-common

如果有依赖项的缺失,按照apt的提示来进行安装即可

比如如果出现

WARNING: perf not found for kernel 3.16.0-50
You may need to install the following packages for this specific kernel:
    linux-tools-3.16.0-50-generic
    linux-cloud-tools-3.16.0-50-generic

那么可能是kernal版本不同,直接apt安装就好了

 sudo apt-get install linux-tools-3.16.0-50-generic linux-cloud-tools-3.16.0-50-generic

安装完成后,切换到root用户,因为perf默认需要用到root权限,然后通过top或者ps等命令获取需要分析的进程的pid(比如2313),输入 

perf top -p 2313

即可获取函数级的CPU占用情况分析结果了

参考资料:

http://wiki.csie.ncku.edu.tw/embedded/perf-tutorial

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值