80. 内存泄露是什么?如何避免?

内存溢出 out of memory

是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。

你要求的内存超出了系统能给你的。

内存泄露 memory leak

是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。

你向系统申请分配内存,但是用完了由于某些原因没有及时归还,那么这块内存不仅自己访问不到内存也无法将其分配给其他需要的程序。

https://blog.csdn.net/ch1406285246/article/details/61618963

如何避免

Python也会内存泄露,Python本身的垃圾回收机制无法回收重写了del的循环引用的对象.
程序员管理好每个python对象的引用,尽量在不需要使用对象的时候,断开所有引用
尽量少通过循环引用组织数据,可以改用weakref做弱引用或者用id之类的句柄访问对象
通过gc模块的接口可以检查出每次垃圾回收有哪些对象不能自动处理,再逐个逐个处理

https://www.cnblogs.com/one-tom/p/11662069.html

发布了79 篇原创文章 · 获赞 7 · 访问量 9340

猜你喜欢

转载自blog.csdn.net/CHERISHGF/article/details/105343838