系统相关
首页 > 系统相关> > 内存泄漏

内存泄漏

作者:互联网

可达性分析算法来判断对象是否是不再使用的对象,本质都是判断一个对象是否还被引用。那么对于这种情况下,由于代码的实现不同就会出现很多种内存泄漏问题
主要原因:内核以为此对象还在引用中,无法回收,造成内存泄漏
只有对象不会再被程序用到了,但是GC又不能回收它们的情况,才叫内存泄漏。
内存泄漏和内存溢出的关系:内存泄漏的增多,最终会导致内存溢出。
内存泄漏类别

  1. 使用全局的 list、 dict 或其它容器,不停的往这些容器中插入对象,而忘记了在使用完之后进行删除回收
  2. 引用循环”,并且被循环引用的对象定义了__del__方法,就会发生内存泄露。

mysql-python的连接
mysql-python会设定use_unicode=True。结果是mysql-python会利用python自己的 codec模块去做字符解码工作,但实际中发现mysql库gbk编码字符集比python的gbk编码集大。一些在mysql里可以存储的字符,拿 python的codec去解析就会抛错。更严重的问题是,在mysql-python1.2.3之前,use_unicode=True即让 mysql-python解码这块存在内存泄露的bug。解码出来所有数据库字符串经过mysql-python出来都是unicode object,要输出到文件需要再次编码。

标签:泄漏,python,对象,内存,mysql,泄露
来源: https://www.cnblogs.com/iven98/p/16144199.html