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++
在实现C++中非阻塞式的用户输入中发现,在没有设置in.sync_with_stdio(false)时,in.rdbuf()里面总是空的。
编程 » C++, boost, 命令行
我们用boost的命令行库program_options解析命令行,在解释布尔命令行时使用下面代码:
IT »
聊天社交:
编程 » C++, 编译链接
最近升级系统,出现好多莫名其妙的问题。其中一个便是 G++编译后,发现其中一个动态链接库引用了绝对地址。正常情况下运行ldd bin/auto应该是下面的结果:
IT » apt, pip, python, ubuntu
正常而言,大家都是用 pip 来安装 python 的包。但有时候无意中(通常是为安装某个特定的软件,根据软件的安装提示),会使用 apt 安装 python 包。而且其实很多包都可以通过 apt 来安装的,名字就是包名再加python3-的前缀。安装后的库以及依赖项位于/usr/lib/python3/dist-packages目录下。比如 apt 安装 requests 包:
相似度: 0.052
boost是除std外最常用的 C++库,覆盖很多常用操作。目前最新的版本是1.59.0http://boost.org/上可以查看最新版本号,将下面的 59 换成最新的即可)。
假设我手里有一些股票,成分和指数差不多,想用股指期货去对冲,应该卖空多少数量的股指期货?
C++内存检查和性能分析工具 valgrind里介绍了 valgrind 的安装,以及用于效率分析 profiler 工具。valgrind 最本来的功能是内存检查。这篇文章做简单的介绍。