2023-04-10

Python垃圾回收機制

https://zhuanlan.zhihu.com/p/83251959

視頻

https://www.bilibili.com/video/BV1F54114761

import sys

# 引用計數(shù) (Reference Counting)

# 對象被創(chuàng)建
a = 2
print(sys.getrefcount(a))

# 對象被容器list引用
b = [a]
print(sys.getrefcount(a))

# 作為形參
def func(param):
    print(sys.getrefcount(param))
    return param * 2

func(a)
print(sys.getrefcount(a))


# 引用計數(shù)缺點:
# 循環(huán)引用,額外空間開銷,某些場景計算復雜

# 容器對象才會發(fā)生循環(huán)引用


# 標記清除 (Mark and Sweep)
# 解決循環(huán)引用
# 垃圾回收階段會暫停整個應用程序,等到標記清除結束后,才會恢復應用程序的運行

# 分代回收 (Generational Collection)
# 清除循環(huán)引用時,整個程序會被暫停,為了減少程序暫停時間,引入了"分代回收"機制 

import gc
print(gc.get_threshold())
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容