zoukankan      html  css  js  c++  java
  • 【python】python内存管理摘要

    a = 1

    id(a)  == id(1)

    每次退出ipython重新进入,这个Id都会不一样

    sys.getrefcount(a) 可以计数某个对象的引用次数,是原来的次数+1

    垃圾回收

    使用gc包 garbage collector

    gc.collect() 手动垃圾回收

    一般是自动垃圾回收,分配对象和取消分配对象差值高于某个阈值的时候才会回收垃圾,

    使用函数gc.get_threshold() 获得阈值,默认为(700, 10, 10),后两个是分代回收的参数

    分代回收的意义在于,越是长久的对象,我们越认为会存在更久,分为0代, 1代,2代三种

    如果对象经过一次回收没有被回收,那么上升一代,(10, 10)的意思是,经过10次0代回收会进行一次1代回收,经过10次1代回收会进行一次2代回收

    孤立的引用环的回收机制:

    1、首先得到每个对象的引用次数

    2、对每个对象i, 找到i引用的对象j,将j的引用次数减1

    3、如果ref次数为0,除非引用别人或者更下游有引用,否则当作垃圾回收

  • 相关阅读:
    Linux压缩和解压类指令
    Linux 搜索查找类指令
    Linux时间日期类指令
    Linux文件目录类指令
    Linux帮助指令
    Linux运行级别
    微信授权获取code/openid
    微信公众配置
    MySQL规范
    PHP7搭建项目遇到的坑
  • 原文地址:https://www.cnblogs.com/yesuuu/p/6208069.html
Copyright © 2011-2022 走看看