如何报告自己的内存使用情况
How to report own memory usage C++
我需要在c++ (c++ 11)中打印自己的应用程序内存使用情况以查找内存泄漏。我只使用shared_ptr,但我的程序占用4GB,输入是1GB,输出~ 0,1gb。
我有一个大的
for (const std::string & file_name : *files){
try{some_instructions_with_shared_ptr_here}}
不要这样,因为我只有很小的数据结构,里面只有shared_ptr。这可能是问题与其他类或数据结构,所以我想知道什么时候内存泄漏。
使用shared_ptr不是无泄漏机制。如果你的shared_ptr指针中有循环,那么堆将永远不会被释放。valgrind也不会检测到。
也许使用setrlimit来限制你的应用程序资源,看看gdb在哪里崩溃会给你一些提示。
相关文章:
- 任务管理器 - C/C++ 应用程序 - 分配的地址空间与已用内存
- 针对某些特定用例的C++原子内存排序
- 用C++压缩内存中的位图
- 用c++防止内存泄漏
- 内存浪费?如果main()应该只返回0或1,那么为什么main是用int而不是短int甚至char声明的
- 大约"circular reference",我用了weak_ptr但仍然发生内存泄漏
- 你能用内存反序列化字节吗?
- 使用重载的 new 和 delete 运算符跟踪已用内存
- 用C 和Marshall分配给C#的内存
- 当我用clang编译代码时,GCOV会出现内存错误
- 用多个传感器克服Arduino内存限制
- 在闭包中,如何通过存储在内存中的指针或引用类型捕获可变性或用现代函数式语言进行处理?
- CUDA:共享内存的超载以用多个数组实现还原方法
- 我可以动态分配以前分配的内存,但用不同的指针分配
- 从多个线程写入内存区域是否会导致争用?
- 用valgrind分析c++字符内存泄漏
- 为什么用空函数运行std::线程会花费大量内存
- 用new分配4k int后的内存覆盖
- 定义一个C宏并将内存地址设置为用C和C++编写的结构成员
- 除了内存管理,QObject的父级是做什么用的?