Valgrind简介

Valgrind:开源动态分析工具搭建框架

1,总体的概念和定义:

  Valgrind是一个开源的动态分析工具搭建框架。Valgrind提供了很多工具来检测内存泄漏、线程bug以及分析程序性能并且能够自己创建新的分析工具。

  Valgrind目前提供了六款工具,包括:一个内存错误检查器、两个线程错误检测器、一个cache和分支预测工具、一个调用图生成工具和一个栈分析工具。Valgrind可以运行在大多数Linux平台上,包括: X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux, PPC64/Linux, S390X/Linux, MIPS32/Linux, MIPS64/Linux, ARM/Android (2.3.x and later), X86/Android (4.0 and later)等。

2,Valgrind的特点:

  1,节约时间,自动探测内存和线程bug。

  2,加速你的项目(代码)

  3,Valgrind是免费的,开源的,易于使用的,已经广泛使用的,可以用于任何语言编写的代码(不仅仅是c c++,但主要针对这两种语言,因为这两种语言最容易犯错)

  4,Valgrind是可扩展的

3,Valgrind的主要问题:

  其中一个主要问题就是项目运行会明显的变慢在Valgrind下。变慢因子会在5-100之间,这要取决于你使用的工具。这种放慢是类似于Valgrind在调试和分析工具。但是因为你不需要使用Valgrind在一天所有的时间里面,所以这也并不是什么大问题。用Valgrind让你节约下来的debug时间完全值得让你去使用它。

4,什么时候该使用Valgrind呢?

  1,All the time.对于小的程序,当在开发的时候可以运行程序在Valgrind环境下(内存检测),那么内存bug会很显然得被检测出来。

  2,在自动化测试中。通过将Valgrind集成到你的自动化测试系统,你可以确保没有代码不会被检测到。

  3,在大的修改之后。确保新的bug不会被带入到新的代码中来。

  4,当bug出现的时候。通过Valgrind得到这个bug是什么,在哪儿发生的,为什么发生的反馈。

  5,当可能存在bug的时候。你的程序是否经常行为古怪?用Valgrind确认是否是bug引起的原因。

  6,在发布版本之前。给你自己信心,确认你的新发布版本是稳健的而且bug几乎没有的。

  7,作为一个扼要介绍工具。当你想要知道你的程序是如何消耗时间,或者你需要加速你的代码。

 

posted @ 2013-12-09 16:23  jiezhao  阅读(515)  评论(0编辑  收藏  举报