python面试题之简要描述Python的垃圾回收机制(garbage collection)
2024-09-03 04:29:45
这里能说的很多。你应该提到下面几个主要的点:
- Python在内存中存储了每个对象的引用计数(reference count)。如果计数值变成0,那么相应的对象就会小时,分配给该对象的内存就会释放出来用作他用。
- 偶尔也会出现
引用循环
(reference cycle)。垃圾回收器会定时寻找这个循环,并将其回收。举个例子,假设有两个对象o1
和o2
,而且符合o1.x == o2
和o2.x == o1
这两个条件。如果o1
和o2
没有其他代码引用,那么它们就不应该继续存在。但它们的引用计数都是1。 - Python中使用了某些启发式算法(heuristics)来加速垃圾回收。例如,越晚创建的对象更有可能被回收。对象被创建之后,垃圾回收器会分配它们所属的代(generation)。每个对象都会被分配一个代,而被分配更年轻代的对象是优先被处理的。
本文首发于Python黑洞网,博客园同步更新
最新文章
- java笔记——Java关键字static、final使用小结
- 2016 长春东北赛---Coconuts(离散化+DFS)
- 安装新版xampp后apache无法启动提示:Apache Service detected with wrong path解决方案
- Golang哲学思想
- Oracle 11gR2 RAC Votedisk and OCR Diskgroup Recovery
- 对于php-fpm和cgi,还有并发响应的理解
- Linux CentOs集群LVS+Keepalived负载均衡的实现
- NSTimer 不工作 不调用方法
- PHP安装过程中问题详解
- NOIP2012疫情控制(二分答案+树上贪心)
- javascript: 类、方法、原型
- 图片缩放PhoneView
- SQL Server -- 随笔
- Cocos2d-x游戏导出android工程,提取cocos的so文件
- Zabbix 3.0 for Ubuntu 14.04 LTS 安装
- servlet的生命周期详解
- HDU 1009 FatMouse' Trade(简单贪心)
- Oracle 11g行字段拼接WMSYS.WM_CONCAT问题Not A LOB
- angular js自定义service的简单示例
- SpringMVC06Exception 异常处理