美文网首页
2023-04-10

2023-04-10

作者: 来到了没有知识的荒原 | 来源:发表于2023-04-09 15:33 被阅读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())
    

    相关文章

      网友评论

          本文标题:2023-04-10

          本文链接:https://www.haomeiwen.com/subject/fymbddtx.html