python day09
内存空间管理
1、空间引用计数,垃圾回收机制的依据
--变量的值被引用,该值的引用计数加1
--变量解除绑定,该值的引用计数减1
--如果该值的引用计数为0,就会被自动回收
2、引用计数会出现的循环问题:相互引用无法释放
--两个变量引用其值,值之间又相互引用
--变量接触绑定,但两个值的引用计数都不为0
--引用计数>0的值无法被回收,导致内存泄漏
3、标记清除:解决循环问题
--所有线程能访问到的栈区变量称为gc roots对象
--将所有gc roots变量能直接或者间接访问到的值标为存活状态
--将所有存活状态的值拷贝一份,复制到新的区域,完成变量的重新引用
--清除机制,会将之前产生的值全部进行回收
4、分带回收,采用的还是引用计数来回收,是对该机制的一个优化
--刚产生的变量值放在新生代中高频检测,如果引用计数为0,就采用垃圾回收机制进行回收,如果长期标记存活经过多次检验就会提高分带
--分带越高,检测频率越低,且还能继续提高一直存活的变量值,从而提高整体垃圾回收机制效率