循环引用
python通过标记清除解决
变量分为两块, 名与值
名: 存放在栈区, 存变量名与值的内存地址
值: 存放在堆区
操作与访问变量
操作的时候: 我们只能操作堆区, 只能改变值, 不可以操作变量名
访问的时候: 只能访问栈区(变量名)
通过栈区能访问到的对象为可存活对象
分带回收
Cpython的垃圾回收机制不能无时无刻的进行扫描, 会影响效率
python通过分代回收解决
多次扫描后依然存活的值放入老一代
其他的放在新批次
垃圾回收扫描的时候
老批次扫描频率低
新批次扫描频率高
网友评论