zoukankan      html  css  js  c++  java
  • Python学习————垃圾回收机制

    垃圾回收机制

    1、引用计数

    x = 10 # 直接引用
    print(id(x))
    y = x
    z = x

    l = ['a', 'b', x] # 间接引用
    print(id(l[2])) #

    d = {'mmm': x} # 间接引用

    print(id(d['mmm']))


    x=10
    l=['a','b',x] # l=['a'的内存地址,'b'的内存地址,10的内存地址]

    x=123
    print(l[2])


    x=10
    x=[10,]

    l=['a','b',10]


    2、标记清除
    标记清除:用来解决循环引用带来的内存泄露问题
    循环引用=>导致内存泄露
    l1=[111,]
    l2=[222,]

    l1.append(l2) # l1=[值111的内存地址,l2列表的内存地址]
    l2.append(l1) # l2=[值222的内存地址,l1列表的内存地址]

    print(id(l1[1]))
    print(id(l2))

    print(id(l2[1]))
    print(id(l1))

    print(l2)
    print(l1[1])

    del l1
    del l2

    3、分代回收
    分代回收:用来降低引用计数的扫描频率,提升垃圾回收的效率
    (python将内存根据对象的存活时间划分为不同的集合,每个集合称为一个代,比如有年轻代、中年代、老年代,年轻代最先被回收)
  • 相关阅读:
    postfix遇到的问题
    SElinux以及防火墙的关闭
    centos查看系统信息
    WINDOWS访问SAMBA提示没有权限
    常用命令
    口才
    【李敖的管理经】
    随笔
    查询MX记录
    bash: ifconfig: command not found
  • 原文地址:https://www.cnblogs.com/x945669/p/12421997.html
Copyright © 2011-2022 走看看