使用 valgrind 的 massif 测量 C++ 应用程序的最大内存使用量(堆栈和堆)
Measurement of a c++ app's maximum memory usage (stack and heap) with valgrind's massif
我目前正在 Ubuntu 16.04 虚拟机上开发 C++ 应用程序。我需要测量应用程序(堆栈和堆)的总内存使用情况,以找出其最大值范围。由于我在内存分析方面还很陌生,所以我最终使用 valgrind 作为 follows:commands:
valgrind --tool=massif --stacks=yes ./c++_app
ms_print massif.out.<PID>
在解码文件中,我在相关图表上看到了 12.5 MB 的尖峰。
另一方面,gnome-system-monitor 显示 25 MB 作为最大内存值。
我应该相信这两个结果中的哪一个?是否也应该与其他软件交叉检查内存使用情况?
这两个结果可能都是正确的。
Massif 配置文件堆积并可能堆叠。
另一方面,系统监视器提供有关总内存使用情况的信息,包括 运行 图像的大小(其中还包括静态数据内存)。
对于你的问题,你应该依赖地块结果。
我目前正在 Ubuntu 16.04 虚拟机上开发 C++ 应用程序。我需要测量应用程序(堆栈和堆)的总内存使用情况,以找出其最大值范围。由于我在内存分析方面还很陌生,所以我最终使用 valgrind 作为 follows:commands:
valgrind --tool=massif --stacks=yes ./c++_app
ms_print massif.out.<PID>
在解码文件中,我在相关图表上看到了 12.5 MB 的尖峰。 另一方面,gnome-system-monitor 显示 25 MB 作为最大内存值。
我应该相信这两个结果中的哪一个?是否也应该与其他软件交叉检查内存使用情况?
这两个结果可能都是正确的。 Massif 配置文件堆积并可能堆叠。 另一方面,系统监视器提供有关总内存使用情况的信息,包括 运行 图像的大小(其中还包括静态数据内存)。
对于你的问题,你应该依赖地块结果。