首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第13p,Python的优化与垃圾回收机制

大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第13篇文章,第二阶段的课程:Python基础知识:Python的优化与垃圾回收机制(下篇)。

学习本课程,建议先看一遍:【计算机基础知识】课程。

一、变量的引用计数

当我们定义一个变量l1 = 10的时候,会在内存中的栈区开辟一个l1的名称空间,同时也会在内存中的堆区开辟一个内存空间存放10这个数值,而l1 = 10相当于把x指向10的内存地址;

我们把x指向10称为,10被引用了1次;

如果再定义y = 10,同时,y也指向了10的内存地址,加上前面的x,10这个数值同时被x和y引用,也就是被引用了2次;

一个数值被1几个变量引用,我们称为引用次数;计算数值被引用的次数,称为引用计数。

当一个数值的引用计数为时,Python会自动将该数值释放。

二、Python中的垃圾回收机制

垃圾回收机制:Python解释器自带的一种机制,专门用来回收不可用的变量值所占用的内存空间。

1、标记清除机制

我们定义一个变量的目的是为了取用它(定义变量就是为了用),当一个数值无法被直接调用或间接调用时,Python中的标记清除机制会将这样的数值在内存中释放。

2、分代回收机制

标记清除的机制会不断循环查看变量值的引用次数;如果程序比较大,会比较占用程序的运行空间;所以,Python提出了另一种优化机制:分代回收机制。

标记清除机制是把所有值都查看一遍,看看值是否有被引用;分代回收机制会把所有值进行分类(可以理解成分信用等级),对于引用次数较多且一直在调用的值,不会每次都去查看它的引用次数(有点像老师管理学生,优等生、差生的态度都不一样)。

以上是本期内容,如果有表达不对的内容,欢迎您的留言、斧正,我们一起天天向上。

感谢您的阅读,您的关注点赞就是对我最大的支持,谢谢!

本文由杨数Tos原创,欢迎关注,带你一起长知识。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200608A02TTQ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券