内存泄漏以及常见的解决方法
来源:互联网 发布:网络教育如何考试 编辑:程序博客网 时间:2024/06/03 21:19
1. 什么是内存泄漏(memory leak)?
指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。
2. 对于C和C++这种没有Garbage Collection 的语言来讲,我们主要关注两种类型的内存泄漏:
堆内存泄漏(Heap leak)。对内存指的是程序运行中根据需要分配通过malloc,realloc new等从堆中分配的一块内存,再是完成后必须通过调用对应的 free或者delete 删掉。如果程序的设计的错误导致这部分内存没有被释放,那么此后这块内存将不会被使用,就会产生Heap Leak.
系统资源泄露(Resource Leak).主要指程序使用系统分配的资源比如 Bitmap,handle ,SOCKET等没有使用相应的函数释放掉,导致系统资源的浪费,严重可导致系统效能降低,系统运行不稳定。
3. 如何解决内存泄露?
第一,良好的编码习惯,尽量在涉及内存的程序段,检测出内存泄露。
使用了内存分配的函数,要记得要使用其想用的函数释放掉,一旦使用完毕。
第二,重载 new 和 delete。其主要思路是将分配的内存以链表的形式自行管理,使用完毕之后从链表中删除,程序结束时可检查改链表,其中记录了内存泄露的文件,所在文件的行数以及泄露的大小
第三,Boost 中的smart pointer
点击打开链接
0 0
- 内存泄漏以及常见的解决方法
- 内存泄漏以及常见的解决方法
- 内存泄漏以及常见的解决方法
- 内存泄漏以及常见的解决方法
- 内存泄漏以及常见的解决方法
- 内存泄漏以及常见的解决方法
- 内存泄漏以及常见的解决方法
- 内存泄漏以及常见的解决方法
- 内存泄漏以及常见的解决方法
- 内存泄漏以及常见的解决方法
- 内存泄漏以及常见的解决方法
- 内存泄漏以及常见的解决方法
- 内存泄漏以及常见的解决方法
- 内存泄漏以及常见的解决方法
- 内存泄漏以及常见的解决方法
- 内存泄漏以及常见的解决方法
- 内存泄漏以及常见的解决方法
- 内存泄漏以及常见的解决方法
- 蓝桥杯 算法提高 超级玛丽
- PAT_Basic 1010
- 《Android开发艺术探索》读书笔记 (4) 第4章 View的工作原理
- uboot 启动流程
- hadoop-2.2.0追加日志记录
- 内存泄漏以及常见的解决方法
- bash之通配符
- C++this指针详解
- int类型定义,float、double类型引用造成的结果
- 编程学习第三天,更多的Python
- C++开源代码项目汇总
- Android ScrollView如何判断上下滑的方向
- spark读取kafka数据 createStream和createDirectStream的区别
- mongdb 基本概念