内存泄漏&内存溢出
- 内存泄漏
当一个对象不需要使用本应该被回收,但是有另一个对象正在使用,且持有他的引用,然后造成它不能被回收,这导致本应该被回收的对象不能被回收而停留在堆内存中,这就造成了内存的泄漏。这会导致程序奔溃或者程序运行的特别慢。
解决的办法:
-
Python中存在GC模块,相应的可以查看
-
在其他语言中,需要良好的编码习惯,尽量在涉及内存的程序段,检测是否内存泄漏。在使用内存分配的函数,一旦使用完毕,要记得将其对应的函数释放掉
-
内存溢出
指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储int类型数据的存储空间,但是你却存储long类型的数据,那么结果就是内存不够用,此时就会报错OOM,即所谓的内存溢出。