Python垃圾收集机制
生活随笔
收集整理的這篇文章主要介紹了
Python垃圾收集机制
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.引用計數(shù)
增加引用計數(shù)
- 對象被創(chuàng)建
x = 3.14 - 或另外的別名被創(chuàng)建
y = x - 或作為參數(shù)被傳遞(新的本地引用)
foobar(x) - 或成為一個容器的對象
myList = [123, x, ‘xyz]
- 對象被創(chuàng)建
減少引用計數(shù)
- 一個本地引用離開了其作用范圍。比如foobar()函數(shù)結束時
- 對象的別名被顯示銷毀
del y # 執(zhí)行del會產(chǎn)生兩個結果 - 對象的一個別名被復制給其他對象
x = 123 - 對象從一個窗口對象中移除
myList.remove(x) - 窗口對象本身被銷毀
del myList
2.循環(huán)引用
一個循環(huán)引用發(fā)生在當你至少有兩個對象互相引用時,也就是即使其他所有引用都消失,其引用計數(shù)依然不為0,這時候僅靠引用計數(shù)顯然是不夠的
list1 = [] list2 = [] list1.append(list2) list2.append(list1)Python的垃圾收集器實際上是一個引用計數(shù)器和一個循環(huán)垃圾收集器,這種情況就需要循環(huán)垃圾收集器來處理了。
3.標記-清除
標記-清除機制,顧名思義,首先標記對象(垃圾檢測),然后清除垃圾(垃圾回收)。
將引用計數(shù)為0的全都打上標記,等待GC循環(huán)檢測回收
4.分代回收
分代技術簡單點說就是:對象存在時間越長,越可能不是垃圾,應該越少去收集。
這樣的思想,可以減少標記-清除機制所帶來的額外操作,極大提高效率。
總結
以上是生活随笔為你收集整理的Python垃圾收集机制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工业级POE交换机、企业级交换机、普通交
- 下一篇: PoE交换机可以当普通交换机吗?