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.分代回收:用来降低引用计数的扫描频率,提升垃圾回收的效率

  • 相关阅读:
    hdu3486 Interviewe (二分+线段树求区间最值)
    hdu2473 JunkMail Filter(并查集)
    hdu3290 The magic apple tree (dfs)
    hdu2610 Sequence one (dfs) &&hdu2611 Sequence two
    hdu1598 find the most comfortable road (枚举+并查集)
    hdu3635 Dragon Balls
    hdu2821 Pusher
    hdu1558 Segment set
    hdu 2514 Another Eight Puzzle
    url传递中文的解决方案
  • 原文地址:https://www.cnblogs.com/chenyoupan/p/12421932.html
Copyright © 2011-2022 走看看