开发者社区 问答 正文

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

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

展开
收起
珍宝珠 2019-11-11 11:39:11 2587 分享 版权
1 条回答
写回答
取消 提交回答
  • 内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。

    有__del__()函数的对象间的循环引用是导致内存泄露的主凶。不使用一个对象时使用: del object 来删除一个对象的引用计数就可以有效防止内存泄露问题。

    通过Python扩展模块gc 来查看不能回收的对象的详细信息。

    可以通过 sys.getrefcount(obj) 来获取对象的引用计数,并根据返回值是否为0来判断是否内存泄露

    2019-11-11 13:17:39
    赞同 展开评论
问答地址: