在项目开发中,经常会遇到程序启动时间过长、CPU使用率过高等问题,这个时候需要依靠性能分析工具来定位性能的消耗点。本文介绍三个常用的工具的入门级使用及图形化方法,供大家参考。
本文介绍perf、gprof和valgrind三个性能分析工具,及其分析结果图形化的方法,旨在让大家更快的上手使用工具。出于篇幅的限制,本文不会对每种工具的使用参数及结果分析做详细的介绍,只做入门级的使用说明。
每个工具的介绍会分成简介、使用说明、图形化方法三个部分。
每种工具的结果都会基于下面这段代码:
#include using namespace std;#define NUM 500000void init(int* int_array){for(int i=0;i
这段代码在V615机器上执行了31s,最大CPU使用率为8.3%(top结果)
一、Perf
1.1 简介
Perf是内置于Linux内核源码树中的性能剖析(profiling)工具。其基于事件采样原理,以性能事件为基础,常用于性能瓶颈的查找与热点代码的定位。
1.2 使用
perf的使用可以分为两种方式:
- 直接使用perf启动服务
- 挂接到已启动的进程
第一种方式不需要root权限,第二种方式需要root权限
基于入门级使用这一前提,直接介绍一下使用方式ÿ