垃圾回收機制

引用計數

<code>import sys
# 請在Python解釋器下運行 為 2 創建一次 調用一次


str1 = 'hello world'
print(sys.getrefcount(str1))/<code>

分代技術

<code>Python默認定義了三代對象集合,索引數越大,對象存活時間越長
Python中使用了某些啟發式算法(heuristics)來加速垃圾回收。例如,越晚創建的對象更有可能被回收。對象被創建之後,垃圾回收器會分配它們所屬的代(generation)。每個對象都會被分配一個代,而被分配更年輕代的對象是優先被處理的。/<code>

引用循環

<code>垃圾回收器會定時尋找這個循環,並將其回收。舉個例子,假設有兩個對象o1和o2,而且符合o1.x == o2和o2.x == o1這兩個條件。如果o1和o2沒有其他代碼引用,那麼它們就不應該繼續存在。但它們的引用計數都是1。/<code>