使用valgrind的块来测量c ++应用程序的最大内存使用量(堆栈和堆)

时间:2017-06-19 13:07:58

标签: c++ valgrind massif

我目前正在Ubuntu 16.04虚拟机上开发一个C ++应用程序。我需要测量应用程序(堆栈和堆)的总内存使用量,以便找出它的最大值范围。由于我对内存分析很新,我最终使用valgrind如下:命令:

valgrind --tool=massif --stacks=yes  ./c++_app
ms_print massif.out.<PID>

在解码文件中,我在相关图表上获得了12.5 MB的峰值。 另一方面,gnome-system-monitor显示25 MB作为最大内存值。

我应该相信这两个结果中的哪一个?是否应该与其他软件交叉检查内存使用情况?

1 个答案:

答案 0 :(得分:2)

两种结果都可能是正确的。 Massif配置文件堆和可能堆栈。 另一方面,系统监视器提供有关总内存使用情况的信息,包括正在运行的映像的大小(还包括静态数据内存)。

对于你的问题,你应该依赖于地块结果。