【发布时间】:2019-03-22 04:28:20
【问题描述】:
我正在为一个学校项目创建一个性能驱动的程序,因此,我想我会分析我的程序的内存使用情况。
为此,我使用了 Valgrind,无论是否使用 Massif 工具。使用每个测试的结果如下:
运行valgrind --leak-check=full -v ./main 给了我上面的输出。好的,明白了,总共大约 67MB 的堆使用量,对吧?
但后来我想知道我的程序在运行时分配了多少内存,所以我进行了一些挖掘并找到了 Massif 工具,它正是这样做的。
因此我运行了valgrind --tool=massif ./main,然后是ms_print massif.out.<pid>,其中<pid> 是执行我的程序的已死进程的进程ID。这为我提供了上面两张图片中显示的输出。
所以我的问题是,为什么总堆使用量在 67MB 左右,但 Massif 说它在某个时候达到了 109.9MB 的峰值?
【问题讨论】:
标签: valgrind heap-memory massif