zoukankan      html  css  js  c++  java
  • python day09

    内存空间管理

    1、空间引用计数,垃圾回收机制的依据

      --变量的值被引用,该值的引用计数加1

      --变量解除绑定,该值的引用计数减1

      --如果该值的引用计数为0,就会被自动回收

    2、引用计数会出现的循环问题:相互引用无法释放

      --两个变量引用其值,值之间又相互引用

      --变量接触绑定,但两个值的引用计数都不为0

      --引用计数>0的值无法被回收,导致内存泄漏

    3、标记清除:解决循环问题

      --所有线程能访问到的栈区变量称为gc roots对象

      --将所有gc roots变量能直接或者间接访问到的值标为存活状态

      --将所有存活状态的值拷贝一份,复制到新的区域,完成变量的重新引用

      --清除机制,会将之前产生的值全部进行回收

    4、分带回收,采用的还是引用计数来回收,是对该机制的一个优化

      --刚产生的变量值放在新生代中高频检测,如果引用计数为0,就采用垃圾回收机制进行回收,如果长期标记存活经过多次检验就会提高分带

      --分带越高,检测频率越低,且还能继续提高一直存活的变量值,从而提高整体垃圾回收机制效率

  • 相关阅读:
    算法
    数据结构
    数据表与简单java类(一对多)
    引用传递
    二叉排序树 C++
    二叉树 C++
    基数排序
    快速排序
    堆排序
    归并排序
  • 原文地址:https://www.cnblogs.com/hesujian/p/10758826.html
Copyright © 2011-2022 走看看