【说站】python标记清除的过程
Python 过程 清除 标记
2023-06-13 09:13:16 时间
python标记清除的过程
过程
1、垃圾收集的第一步是通过可收集对象链表,将引用从引用中摘除。
有些container对象的PyGC_Head.gc.gc_ref还不是0。
2、对象的外部引用存在,这些对象是开始标记的root object集合。
实例
首先我们说一下变量的概念:
1 变量名: 不存值,只是指向一个内存地址
2 赋值符号
3 变量值: 这里才是存放数据的地方
变量我们是存在内存当中的,变量名存放的地方栈, 变量值放的地方是堆
我们只能操控堆,也就是变量值,不能操控变量名存放的地方
比如: x = 1
x = 2
x最终等于了2 , 因为x指向的内存地址改变了
我们都是通过变量名去访问值,它会有一个标记的过程,存在于栈区的对象叫做GC Roots对象
它会扫描栈区(变量名)里所有的内容,将所有栈区里的对象直接或间接访问的对象标记为存活对象,其余的都为非存活,应该被清除
比如: l1 = [1]
l2 = [2]
l1.append(l2)
l2.append(l1)
del l1
del l2
什么是GC Roots可达的对象? 通过栈区(变量名)可到达(访问)的对象,就叫GC Roots可达的对象,
l1 就是一个GC Roots,del把l1与指向的内存地址给解除了绑定,l1就没有引用计数了
以上就是python标记清除的过程,希望对大家有所帮助。更多Python学习指路:python基础教程
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
相关文章
- 【过程记录】python环境离线迁移
- python re.compile() 详解——Python正则表达式「建议收藏」
- 人生苦短,python更短
- python fileinput_Python之fileinput模块学习「建议收藏」
- python移动app开发_神奇的Kivy,让Python快速开发移动app
- python人工智能学习笔记_[Python] 人工智能与自然语言处理学习笔记(1)[通俗易懂]
- python数组拼接字符串_Python练习题——数组拼接
- python pytorch 版本,python 如何查看pytorch版本
- python常见运维脚本_Python运维常用脚本[通俗易懂]
- Python抓取数据_python抓取游戏数据
- Python编程 数值类型 数学计算
- python廖雪峰学习笔记[通俗易懂]
- Python 冒泡排序_python
- python编写简单网页_python制作动态数据图
- 盘点Python网络爬虫过程中xpath的联合查询定位一个案例
- python绘制条形柱状图_Python柱状图
- PYTHON 用几何布朗运动模型和蒙特卡罗MONTE CARLO随机过程模拟股票价格可视化分析耐克NKE股价时间序列数据|附代码数据
- Python中的装饰器
- Python close()函数:关闭文件
- Linux下安装Python的指南(linux下安装python)
- Python玩转Redis:提升缓存效率(python使用redis)
- Python实现快速连接Redis数据库(python连接redis)
- 10 个 Python 图像编辑工具
- python驱动使用pip安装MySQL Python驱动的简单步骤(pip安装mysql)
- Python连接MySQL数据库:初学者指南(python入mysql)
- Python实现MySQL数据库的读取(python读取mysql)
- 从 Python 连接到 MySQL:实现更多强大的数据库应用(python和mysql)
- python去掉字符串中重复字符的方法
- 简单的抓取淘宝图片的Python爬虫