我使用valgrind massif记录内存分配,并使用ms_print创建快照文档,该快照向我显示哪个调用堆栈当前拥有多少内存,对吧?
[我想测量在整个程序运行中分配最多的调用栈,这意味着在计算调用栈的权重时应考虑释放的内存。
这可能吗?
问候
[当工具(例如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有关更多详细信息。