Linux性能分析工具.md

Perf

Perf是内置于Linux内核源码树中的性能剖析(profiling)工具。其基于事件采样原理,以性能事件为基础,常用于性能瓶颈的查找与热点代码的定位

Gprof

gprof用于监控程序中每个方法的执行时间和被调用次数,方便找出程序中最耗时的函数。在程序正常退出后,会生成gmon.out文件,解析这个文件,可以生成一个可视化的报告.

Valgrind

valgrind不是linux的原生工具,需要自行安装。valgrind自身包含了多个工具:

  • Memcheck:用于内存泄漏检查
    检查程序中的内存问题,包括使用未初始化的内存;使用已经释放的内存;使用内存越界;对堆栈的非法访问;内存泄露;malloc/free/new/delete申请和释放内存的匹配等内存问题
  • callgrind: 用于性能分析,会收集程序运行时间和调用关系
    Callgrind收集程序运行时的一些数据,函数调用关系等信息,还可以有选择地进行cache 模拟。
  • cachegrind:
    它模拟CPU中的一级缓存I1,D1和L2二级缓存,能够精确地指出程序中 cache的丢失和命中。如果需要,它还能够为我们提供cache丢失次数,内存引用次数,以及每行代码,每个函数,每个模块,整个程序产生的指令数。
  • helgrind:
    它主要用来检查多线程程序中出现的竞争问题。Helgrind 寻找内存中被多个线程访问,而又没有一贯加锁的区域,这些区域往往是线程之间失去同步的地方,而且会导致难以发掘的错误。
  • massif:
    堆栈分析器,它能测量程序在堆栈中使用了多少内存,告诉我们堆块,堆管理块和栈的大小。Massif能帮助我们减少内存的使用,在带有虚拟内存的现代系统中,它还能够加速我们程序的运行,减少程序停留在交换区中的几率。、
参考文献
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页