美文网首页
valgrind之性能分析功能

valgrind之性能分析功能

作者: 剑雪封侯之 | 来源:发表于2017-08-21 19:15 被阅读0次

简介

Valgrind是运行在Linux上一套基于仿真技术的程序调试和分析工具,它包含一个内核──一个软件合成的CPU,和一系列的小工具,每个工具都可以完成一项任务──调试,分析,或测试等。Valgrind可以检测内存泄漏和内存违例,还可以分析cache的使用等,灵活轻巧而又强大,能直穿程序错误的心脏,真可谓是程序员的瑞士军刀。

和gprof分析工具类似,它对程序的运行能给我们提供很多的信息。不过和gprof不同,它不需要在编译源代码时附加特殊选项,但加上调试选项是推荐的。Callgrind收集程序运行时的一些数据,建立函数调用关系图,还可以有选择地进行cache模拟。在运行结束时,它会把分析数据写入一个文件。

此处的性能分析主要是使用参数callgrind如函数调用栈来分析。

使用方法

在linux下,使用命令valgrind --tool=callgrind execname
如果是多线程,可以增加选项--separate-threads=yes
会在当前目录下生成文件,文件名字为“callgrind.out.进程号"
如果为多线程,则会生成多个文件。

文件解析

生成的文件有两种处理方式:

  • 一种为转换为dot文件,然后再将dot文件转换为图片。
    第一、生成dot文件
    gprof2dot.py -f callgrind -n10 -s callgrind.out.31113 > valgrind.dot
    第二、将dot文件转换成图片
    dot -Tpng valgrind.dot -o valgrind.png

  • 另一种方式为使用软件 qcachegrind.exe
    用软件打开文件后,会显示如下图:

clipboard.png

通过上述图中百分比,可以分析出cpu调用过程中的瓶颈,从而优化程序。

相关文章

  • valgrind之性能分析功能

    简介 Valgrind是运行在Linux上一套基于仿真技术的程序调试和分析工具,它包含一个内核──一个软件合成的C...

  • Valgrind安装使用简介

    Valgrind简介 Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。Valgrind...

  • valgrind

    valgrind通常用来分析程序性能和内存泄露问题 安装 简介 valgrind包含如下工具 memcheck 检...

  • 3. C++内存泄露扫描利器--valgrind

    一. 简述valgrind是什么,为何能进行内存泄露 valgrind是一个程序调试及性能分析的工具集,涵盖mem...

  • 我在BAT学到的技术工具-valgrind

    上周想定位DA的性能瓶颈,所以研究了下性能分析的工具。类似的工具有很多,如:vtune,valgrind,gpro...

  • 性能深度分析之System Trace

    性能深度分析之System Trace性能深度分析之System Trace

  • Valgrind

    一、概述Valgrind 提供调试和分析错误的工具包 二、使用的功能 memcheck三、安装与调试 安装http...

  • MS(4):Android之性能优化篇

    六、性能及优化 1、App优化之性能分析工具 Android App优化之性能分析工具 2、ListView优化 ...

  • Android 内存泄漏总结

    Android 性能相关知识 Android性能之 内存泄漏总结 Android性能之 卡顿分析解决 Androi...

  • 内存泄漏检测工具 memcheck

    valgrind valgrind是运行在Linux上一套基于仿真技术的程序调试和分析工具,它包含一个内核,一个软...

网友评论

      本文标题:valgrind之性能分析功能

      本文链接:https://www.haomeiwen.com/subject/csqhdxtx.html