python 内存管理机制(垃圾回收机制)

本文详细探讨了Python的内存管理机制,包括动态类型的特性、引用计数原理、内存池的概念及其对效率和内存负担的影响。进一步讨论了垃圾回收的引用计数为0作为回收条件,以及分代回收策略,解释了其降低运行效率的担忧和阈值设定。此外,还介绍了如何处理引用环问题,确保无用对象能够被正确清理。
摘要由CSDN通过智能技术生成

python 内存管理机制(垃圾回收机制)

  1. python 内存的使用
    • python在定义一个变量的时候,因为python是一门动态类型的语言,会在变量内存地址分配在运行时自动判断变量的类型对变量进行赋值(不会像java一样,提前声明变量类型)
  2. 引用计数
    • python通过内存地址的引用计数是否为0,来判断分配的内存地址,已经废弃,需要回收
    • 通过sys.getrefcount(), 可以查看该内存地址是否被引用,一般至少会从2开始计数,因为getrefcount()会临时指向此内存地址,引用计数为getrefcount()-1
    • 内存池
      • 内存池还是比较重要滴,如果有提到这个还是可以为自己加分的
      1. 作用:提高执行效率, 减少内存负担。
      2. 内存池缓存内容: 1. -5-256的整型,2. 短字符串(20个字符的字符串)
  3. python是一门成熟的语言,会自行进行 垃圾回收
    • gc(garbage collector)
      #手动调用垃圾回收
      import gc (garbage collector)
      del a
      gc.collect()
    • 垃圾回收机制
      1. 引用计数为0
      2. 分代回收(由于频繁的垃圾回收会降低运行效率)
        • 原理:分代回收分为0, 1, 2三代,在会记录其中分配对象(object allocation)和取消分配对象(object deallocation)的次数。当两者的差值高于某个阈值时,垃圾回收机制会自动启动
        • 通过get_th
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值