详解Python对于垃圾回收的机制及过程

简介: 当你生活不如意,工作失意或者感情不顺的时候,要么是身体出问题了,要么就是思想出问题了。问题一找一个准儿。要明白自己真正缺的是什么?想要的是什么?为何而来,为何而去?然后深入思考,其实你真正缺的并不是表面你认为自己非常缺乏的东西,透过事物看透本质,所有的问题和原因都将迎刃而解。

我的操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

步骤

(1)收集所有容器对象 ( list , dict , tuple , customClass, ... ) ,通过一个双向链表进行引用;

(2)针对每一个容器对象,通过一个变量 gc_refs 来记录当前对应的引用计数;

(3)对于每个容器对象,找到它所引用的容器对象,并将这个容器对象的引用计数 -1;

(4)经过步骤 3 后,如果一个容器对象的引用计数为 0,就代表这个对象可以被回收了,肯定是 "循环引用" 才导致它活到现在的。

垃圾回收的周期顺序

0 代 "垃圾回收" 一定次数后,触发 0~1 代回收;

1 代 "垃圾回收" 一定次数后,触发 0~2 代回收。

相关文章
|
17天前
|
缓存 监控 算法
Python内存管理:掌握对象的生命周期与垃圾回收机制####
本文深入探讨了Python中的内存管理机制,特别是对象的生命周期和垃圾回收过程。通过理解引用计数、标记-清除及分代收集等核心概念,帮助开发者优化程序性能,避免内存泄漏。 ####
30 3
|
1月前
|
UED 开发者 Python
Python中的异常处理机制
Python中的异常处理机制
39 2
|
1月前
|
监控 Java 开发者
Python的垃圾收集机制有哪些?
Python的垃圾收集机制有哪些?
|
3月前
|
测试技术 数据库 开发者
Python作为一种谦逊的编程语言:对象自省机制的探讨
Python的自省机制是该语言的一个强大特性,为开发者提供了深入了解和操作对象的能力。它增强了Python的灵活性,使得开发者可以更加精准地控制程序的行为。然而,合理利用自省能力,避免其成为代码复杂性的来源,是每个Python开发者需要考虑的问题。通过熟练运用Python提供的自省工具和技巧,可以更好地设计和实现高效、易维护的Python应用。
44 2
|
3月前
|
消息中间件 安全 Kafka
Python IPC机制全攻略:让进程间通信变得像呼吸一样自然
【9月更文挑战第12天】在编程领域,进程间通信(IPC)是连接独立执行单元的关键技术。Python凭借简洁的语法和丰富的库支持,提供了多种IPC方案。本文将对比探讨Python的IPC机制,包括管道与消息队列、套接字与共享内存。管道适用于简单场景,而消息队列更灵活,适合高并发环境。套接字广泛用于网络通信,共享内存则在本地高效传输数据。通过示例代码展示`multiprocessing.Queue`的使用,帮助读者理解IPC的实际应用。希望本文能让你更熟练地选择和运用IPC机制。
63 10
|
2月前
|
文字识别 开发者 iOS开发
Python反爬机制-验证码(一)
Python反爬机制-验证码(一)
30 0
|
2月前
|
人工智能 文字识别 API
Python反爬机制-验证码(二)
Python反爬机制-验证码(二)
20 0
|
3月前
|
开发者 Python
Python 中的 Input 函数及其实现机制
Python 中的 Input 函数及其实现机制
52 0
|
3月前
|
开发者 Python
Python 中的 Input 函数及其实现机制
Python 中的 Input 函数及其实现机制
60 0
|
3月前
|
缓存 Java Python
python垃圾回收&缓存机制
python垃圾回收&缓存机制
下一篇
DataWorks