我目前正在Ubuntu16.04虚拟机上开发一个C++应用程序。我需要测量应用程序(堆栈和堆)的总内存使用量,以找出其最大值范围。由于我在内存分析方面很新,所以我最终使用了val差术,如下所示:
valgrind --tool=massif --stacks=yes ./c++_app
ms_print massif.out.<PID>
在解码的文件中,我在相关的图表上得到了12.5 MB的峰值。另一方面,gnome系统监视器显示最大内存值为25 MB .
我应该相信这两种结果中的哪一种?应该与其他软件交叉检查内存使用情况吗?
发布于 2017-06-19 06:51:58
这两种结果都可能是正确的。Massif配置文件堆,可能还有堆栈。另一方面,系统监视器提供有关总的内存使用情况的信息,包括正在运行的映像的大小(也包括静态数据内存)。
对于你的问题,你应该依靠大量的结果。
https://stackoverflow.com/questions/44631467
复制