C++ 内存检查和性能分析工具 valgrind

作者: , 共 543 字 , 共阅读 0

一个好用的 C++性能分析工具需满足几个条件:

  1. 配置简单,不需要改动原程序和重新编译。
  2. 可以跟踪到动态链接库内部。
  3. 有结果的图形界面,可以分层追踪最耗时的片段。

目前我唯一知道满足这些条件的是visual stdio以及valgrind。前者是 windows 平台微软的作品,后者是 linux 上的开源软件。

1、安装

valgrind可通过apt-get安装,并会自动安装所有子工具:

sudo apt-get install valgrind

除此之外,还需安装图形界面工具KCachegrind

sudo apt-get install kcachegrind

kcachegrind依赖的包比较多,下载安装时间较长。

2、使用

valgrind 是一系列软件,它最初的功能是检查程序的内存状况。效率检查是子工具callgrind

valgrind --tool=callgrind -v [callgrind options] your-program [program options]

此处-v可进入动态链接库。它会在当前目录下生成一个callgrind.out.918或类似的文件。

查看结果:

kcachegrind callgrind.out.918

Q. E. D.

类似文章:
C++内存检查和性能分析工具 valgrind里介绍了 valgrind 的安装,以及用于效率分析 profiler 工具。valgrind 最本来的功能是内存检查。这篇文章做简单的介绍。
获取程序占用的内存量,是一个诡异的需求。但程序写多了,有时候还真需要,尤其是代码运行出现问题的时候。
编程 » C++, 编译链接
最近升级系统,出现好多莫名其妙的问题。其中一个便是 G++编译后,发现其中一个动态链接库引用了绝对地址。正常情况下运行ldd bin/auto应该是下面的结果:
编程 » C++, boost, 命令行
我们用boost的命令行库program_options解析命令行,在解释布尔命令行时使用下面代码:
相似度: 0.056
boost是除std外最常用的 C++库,覆盖很多常用操作。目前最新的版本是1.59.0
编程 » Matlab, 编译器
现在比较新的电脑基本上都是 64 位的 CPU , Matlab 也是 64 位的版本,但 64 位的 Matlab 没有自带编译器,需另行安装编译器。下面是方法之一:
假设我手里有一些股票,成分和指数差不多,想用股指期货去对冲,应该卖空多少数量的股指期货?
C++内存检查和性能分析工具 valgrind里介绍了 valgrind 的安装,以及用于效率分析 profiler 工具。valgrind 最本来的功能是内存检查。这篇文章做简单的介绍。