C++ 堆释放分析
valgrind的C++ 堆释放分析,c++,memory-management,valgrind,memory-profiling,massif,C++,Memory Management,Valgrind,Memory Profiling,Massif,valgrind的massif工具能够为我的代码(包括调用堆栈)中分配数据的地方提供点数 例如 不获取malloc/new的这些统计信息,是否可以免费获取/删除 例如,是否可以跟踪解除分配?您可以使用memcheck和选项--xtree memory=full来跟踪解除分配 见例。 及 更多信息。您想要实现什么目标?您确定massif是实现目标所需的工具吗?与分配函数相比,释放函数通常非常简单,分析它们的原因是什么?我有两个补丁,它们分配相同数量的内存。但是其中一个内存峰值要低得多,所以它在执行
massif
工具能够为我的代码(包括调用堆栈)中分配数据的地方提供点数
例如
不获取malloc/new的这些统计信息,是否可以免费获取/删除
例如,是否可以跟踪解除分配?您可以使用memcheck和选项--xtree memory=full来跟踪解除分配 见例。 及
更多信息。您想要实现什么目标?您确定
massif
是实现目标所需的工具吗?与分配函数相比,释放函数通常非常简单,分析它们的原因是什么?我有两个补丁,它们分配相同数量的内存。但是其中一个内存峰值要低得多,所以它在执行过程中释放内存——在某个地方。我想知道内存何时何地被释放
99.97% (3,775,782,255B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
->51.05% (1,928,081,040B) 0x37E712: MyFunc() (my_file.h:49)
| ->51.05% (1,928,081,040B) 0x37E15A: AnotherFunc() (my_file.cpp:213)
...