python垃圾处理机制看闭包

'''闭包'''#外部函数调用内部函数,外部函数返回内部函数名,内部函数使用外部变量
# def func1(a):
#     b=3
#     def func2(y):
#         d=a*b+y
#         return d
#     return func2#return就是返回值,即是x
# x=func1(1)
# print(x(2))
局部变量 b=3 在func1函数引用会被清除,但是函数func2 的返回值d在内部的函数func2的引用,所以不会消除。

Python的GC模块主要运用了“引用计数”(reference counting)来跟踪和回收垃圾。在引用计数的基础上,还可以通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用的问题。通过“分代回收”(generation collection)以空间换取时间来进一步提高垃圾回收的效率。

引用计数机制的优点:
1、简单
2、实时性:一旦没有引用,内存就直接释放了。不用像其他机制等到特定时机。实时性还带来一个好处:处理回收内存的时间分摊到了平时。
引用计数机制的缺点:
1、维护引用计数消耗资源
2、循环引用

你可能感兴趣的:(学习)