我需要在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。 它可能是其他类或数据结构的问题所以我想知道内存泄漏的时间。
答案 0 :(得分:1)
使用shared_ptr不是无泄漏机制。如果你的shared_ptr pointees中有循环,那么堆将永远不会被释放。 valgrind也不会发现它。
也许使用setrlimit限制您的应用资源,并使用gdb查看崩溃的位置会给您一些提示。