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

    1.什么是垃圾回收机制

    垃圾回收机制(简称GC)是Python解释器自带的一种机制,专门用来回收不可用的变量值所占用的内存空间

    2.什么要用垃圾回收机制?

    程序运行过程中会申请大量的内存空间,而对于一些无用的内存空间如果不及时清理的话会导致内存使用殆尽(内存溢出),导致程序崩溃,因此管理内存是一件重要且繁杂的事情,而python解释器自带的垃圾回收机制把程序员从繁杂的内存管理中解放出来。

    3.垃圾回收机制原理分析

    Python的GC模块主要运用了“引用计数”(reference counting)来跟踪和回收垃圾。在引用计数的基础上,还可以通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用的问题,并且通过“分代回收”(generation collection)以空间换取时间的方式来进一步提高垃圾回收的效率

    4.引用计数

    4.1直接引用

    x = 10

    print(id(x))

    y = x

    z = x

    4.2间接引用

    x=10

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

    5.标记清除:用来解决循环引用带来的内存泄露问题

    循环引用=>导致内存泄露

    l1=[111,]
    l2=[222,]
    l1.append(l2) # l1=[值111的内存地址,l2列表的内存地址]
    l2.append(l1) # l2=[值222的内存地址,l1列表的内存地址]
    del l1 清除l1的链接
    del l2 清除l2的链接
    清除l1、l1链接后 循环嵌套也会被清除

    6.分代回收:用来降低引用计数的扫描频率,提升垃圾回收的效率

  • 相关阅读:
    HDU3336 Count the string(kmp
    HDU2087 剪花布条(字符串...半暴力写的?
    HDU4763 Theme Section(kmp
    HDU1251 统计难题(字典树|map
    HDU1305 Immediate Decodability (字典树
    priority_queue member function
    HDU
    洛谷 P3370 【模板】字符串哈希 (set||map||哈希||字典树(mle)
    mysql (master/slave)复制原理及配置
    mysql备份小记
  • 原文地址:https://www.cnblogs.com/chenyoupan/p/12421932.html
Copyright © 2011-2022 走看看