内存泄漏

OS万岁

1、图书馆书架上有4096本书,其中3072本可以借阅。其余1024本,放在玻璃柜里,不能查阅

2、学生在图书馆内可以阅读3072本中的任意一本,但是必须知道它的索引号

3、自觉的同学在使用完毕后,放回原处

4、不自觉的同学在使用完毕后,没有放回原处,而是丢在阅览室内的课桌上

5、图书馆管理员定时到阅览室内收集散落在课桌上的书籍,然后放回原处

一天贪同学为了做某种统计调研,陆续从书架上取了3000本书,每次取来查阅后,丢在阅览室,结果他坐的书桌上,堆集如山!其他同学去查阅,发现无果,向管理员“告急”!管理员此时可以强制收回也可以不强制归位堆积的书籍。等贪同学离馆后,管理员把堆积书籍归位!管理员万岁!

这就是——内存泄漏^_^


万法归宗

翻译成专业术语就是

1、系统地址空间一般按照1:3比例划分,用户使用最大空间3G,OS的1G.用户不能访问操作系统的地址空间

2、用户地址空间,通过地址访问任意字节

3、有经验和素养的程序员,malloc,new后配对free,delete,自己使用,自己负责返还

4、没有经验和马虎的程序员,malloc,new后不管了,使用后,丢弃

5、OS在进程终结时候,回收所有分配的内存,以及其他资源

程序在运行过程中不停的分配内存,每次使用过后就直接丢弃不管。导致OS系统内存紧缺。必要时候OS可以强制中止程序运行(比如检测到恶意性),一般不会中止。最后在程序终结时候,回收所有资源!OS万岁


总结

在程序运行期间,程序申请了一块内存,而没有释放,且丢失了对这块内存访问的指针,那么这块内存就是泄漏了!在程序运行期间,OS一直认为这块内存用户在使用,虽然程序已经失去对它的访问方式,不能够再使用。但是OS了解不到这一点!如果程序一直分配,丢弃,分配丢弃这样迭代下去,最终OS将内存告急,引发系统恐慌,增加运行开销(交换区进行换出不使用的页,以腾出空间),甚至荡机!而等到此程序终结,所有‘丢失’的内存将全部回收!注意OS自身不会内存泄漏,若有,且你发现了,这一定是bug。恭喜你,赶快提交给内核开发人员,或者自己打补丁,可能就是一次很好的机遇!


下面两篇内存泄漏的帖子总结的不错,有兴趣的可以瞅瞅

参考1:http://blog.csdn.net/xd1103121507/article/details/7226568

参考2:http://blog.csdn.net/na_he/article/details/7429171

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值