Python内存回收机制

本文介绍了Python内存管理中的小整数对象池和大整数对象池,以及垃圾回收机制,包括引用计数、分代回收和标记-清除策略。讨论了如何手动触发垃圾回收,以及如何调整回收频率。循环引用问题通过标记-清除方法解决,确保内存的有效利用。
摘要由CSDN通过智能技术生成
  •       首先我们要知道在内存中创建对象后,如果有变量使用它,实际是把对象的引用赋值给变量。

    a = 100, # 执行代码时100已经创建好,把100的内存地址赋值给a
    del a,# 删除a后把引用断掉,100没有变量去引用它后,系统嫌它占资源,会被回收销毁(这里我们不考虑其他变量还引用100).

  •       我们可以想想写代码的时候整数是不是使用挺频繁;所以python为了优化速度,创建了小整数池对象,提前缓存一些整数,避免为整数频繁的申请和销毁内存空间。

小整数对象池
  • 定义[-5,257) 不包括257,这些整数对象提前建好,不会被垃圾回收,调用时都会调用同一个对象。
  • 在测试的时候最好在python的IDE集成开发环境中测试
  • 在这里插入图片描述

在我们运行代码的时候也创建了大整数池。

大整数对象池:
  • 简单来说就是在一个代码块里面的大整数属于一个对象,比如在pycharm中,每次运行是所有代码都加载都内存中,属于一个整体,所以 这个时候会有一个大整数对象池,即处于一个代码块的大整数是同一个对象。
  • 代码块可以是一个py文件里的变量、函数、类。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值