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



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

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

在解码的文件中,我在相关图表上得到了 12.5 MB 的峰值。 另一方面,侏儒系统监视器显示 25 MB 作为最大内存值。

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

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

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

最新更新