如何报告自己的内存使用情况C ++

时间:2015-07-09 19:06:56

标签: c++ c++11 memory printing

我需要在C ++(C ++ 11)中打印自己的aplication内存使用来查找内存泄漏。 我只使用shared_ptr,但我的程序需要4GB,输入为1GB输出〜0,1GB。

我有一个大的

for (const std::string & file_name : *files){
    try{some_instructions_with_shared_ptr_here}}

Oudsie这个因为我只有小数据结构,只有shared_ptr。 它可能是其他类或数据结构的问题所以我想知道内存泄漏的时间。

1 个答案:

答案 0 :(得分:1)

使用shared_ptr不是无泄漏机制。如果你的shared_ptr pointees中有循环,那么堆将永远不会被释放。 valgrind也不会发现它。

也许使用setrlimit限制您的应用资源,并使用gdb查看崩溃的位置会给您一些提示。