1

我目前正在 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 作为最大内存值。

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

4

1 回答 1

2

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

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

于 2017-06-19T14:51:58.787 回答