Valgrind massif-测量每个调用栈的总内存分配

问题描述 投票:0回答:1

我使用valgrind massif记录内存分配,并使用ms_print创建快照文档,该快照向我显示哪个调用堆栈当前拥有多少内存,对吧?

[我想测量在整个程序运行中分配最多的调用栈,这意味着在计算调用栈的权重时应考虑释放的内存。

这可能吗?

问候

valgrind massif
1个回答
0
投票

[当工具(例如memcheck,massif等)替换内存分配函数(malloc,free等)时,valgrind提供以下选项:

--xtree-memory=none|allocs|full   profile heap memory in an xtree [none]
                          and produces a report at the end of the execution
                          none: no profiling, allocs: current allocated
                          size/blocks, full: profile current and cumulative
                          allocated size/blocks and freed size/blocks.
--xtree-memory-file=<file>   xtree memory report file [xtmemory.kcg.%p]

因此,如果您使用--xtree-memory = full,您将获得一个可以使用kcachegrind可视化的文件。结果文件详细信息当前分配了什么,分配了什么然后释放了。

请参见http://www.valgrind.org/docs/manual/manual-core.html#manual-core.xtree有关更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.