2023-04-10

2023-04-09  本文已影响0人  来到了没有知识的荒原

Python垃圾回收机制

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

视频

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

import sys

# 引用计数 (Reference Counting)

# 对象被创建
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))


# 引用计数缺点:
# 循环引用,额外空间开销,某些场景计算复杂

# 容器对象才会发生循环引用


# 标记清除 (Mark and Sweep)
# 解决循环引用
# 垃圾回收阶段会暂停整个应用程序,等到标记清除结束后,才会恢复应用程序的运行

# 分代回收 (Generational Collection)
# 清除循环引用时,整个程序会被暂停,为了减少程序暂停时间,引入了"分代回收"机制 

import gc
print(gc.get_threshold())
上一篇 下一篇

猜你喜欢

热点阅读