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

    一、引用计数
    引用计数通俗易懂可以理解为:
    变量的命名规范中需要是这种格式:key=value,key称为变量名,value是变量的数值。
    引用计数就是指,【最后使用】value的key的个数。
    【最后使用】这个值的变量的个数就是引用计数的最终结果数值。

    Python垃圾回收主要以引用计数为主,分代回收为辅。
    『引用计数法』的原理是:每个对象维护一个ob_ref字段,用来记录该对象当前被引用的次数,每当新的引用指向该对象时,它的引用计数ob_ref加1,每当该对象的引用失效时计数ob_ref减1,一旦对象的引用计数为0,该对象立即被回收,对象占用的内存空间将被释放。

    对象被创建  a=14
    对象被引用  b=a
    对象被作为参数,传到函数中   func(a)
    对象作为一个元素,存储在容器中   List={a,”a”,”b”,2}
      与上述情况相对应,当发生以下四种情况时,该对象的引用计数器-1

    当该对象的别名被显式销毁时  del a
    当该对象的引别名被赋予新的对象,   a=26
    一个对象离开它的作用域,例如 func函数执行完毕时,函数里面的局部变量的引用计数器就会减一(但是全局变量不会)
    将该元素从容器中删除时,或者容器被销毁时。

    通俗易懂如下所示:
    因为每个变量都有对应的值,所以没有值的变量【a 前】就是Python眼中的垃圾,就会被内存给清理掉!!
    a=10 前
    b=a

    a=20 后

    a的值被b替换,然后a又重新赋值,那么之前的a就会变成Python眼中的垃圾,被内存清理掉!!!!

  • 相关阅读:
    更准确的mysql全文索引
    range
    牛顿冷却定律 使用
    Servo: The Embeddable Browser Engine
    Node.js V0.12新特性之性能优化
    Lodash,你正在使用的JavaScript库
    Python on Android
    Microsoft HoloLens 技术解谜(下)
    Microsoft HoloLens 技术解谜(上)
    市售体感设备横评
  • 原文地址:https://www.cnblogs.com/ludundun/p/11264278.html
Copyright © 2011-2022 走看看