我目前正在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作为最大内存值。
我应该相信这两个结果中的哪一个?是否应该与其他软件交叉检查内存使用情况?
答案 0 :(得分:2)
两种结果都可能是正确的。 Massif配置文件堆和可能堆栈。 另一方面,系统监视器提供有关总内存使用情况的信息,包括正在运行的映像的大小(还包括静态数据内存)。
对于你的问题,你应该依赖于地块结果。