学习python的小伙伴如果去了解过python的运行效率和运行机制那就应该知道python运行效率较低的原因是在于它有一个垃圾回收机制,那本篇文章就回来讲解一下python值垃圾回收机制是怎么运行的,往下看看吧。
1.在python之中的每一个对象都有一个单独的计数器ob_refcnt可以用来保存当前整个对象被引用的次数,当对象被多次引用时计数器会加1,而内存空间则不会增加。当着对象被销毁时计数器相对的会减1,为0则在内存中彻底删除掉。
2.在python中通过计数器去进行垃圾回收是非常方便和快速的,它能够通过标记清除技术将一些可以迭代和嵌套的数据类型对象进行特殊处理从而使其在内存之中释放掉。
3.垃圾回收的另一个方法叫做分代回收,就是将可能造成无限循环占用内存空间的对象拆分到三个不同的链表之上,然后隔一定的间隔会去扫描这个链表,当链表内对象的计数器为0是就将其销毁。
4.python垃圾回收机制的实际执行过程就是在创建对象时会将对象添加到垃圾处理机制的总管理链表refchain中,当对象的计数器大于阈值700或者是小于0时,它会去对链表上的所有对象进行扫描。从而去判断到底是哪一代的迭代超过了阈值,如果超过则重置为0,小于0就会直接从链表里销毁掉了。
以上就是python垃圾回收机制运行详解了,希望对你有所帮助。