python垃圾回收机制

python的垃圾回收采用的是引用计数机制为主分代回收机制为辅的结合机制,当对象的引用计数变为0时,对象将被销毁。除了解释器默认创建的对象外。(默认对象的引用计数永远不会变成0)

import sys
a = 23
sys.getrefcount(a)

查看一个对象的引用计数: sys.getrefcount() 总是会比实际+1 ,因为 sys.getrefcount() 本身也调用了它一次

引用计数被+1的情况:
  • 对象被创建
  • 对象被引用
  • 对象被作为参数,传入到一个函数中
  • 对象作为一个元素,存储在容器中
引用计数被-1的情况:
  • 对象的别名被赋予新的对象
  • 对象的别名被显式销毁
  • 一个对象离开它的作用域
  • 对象所在的容器被销毁,或从容器中删除对象
垃圾回收
  • 被引用为0时,立即回收当前对象
  • 达到了垃圾回收的阈值,触发标记-清除
  • 手动调用gc.collect() 需要import gc
  • Python虚拟机退出的时候
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值