您的位置:首页 > 编程语言 > Python开发

Python垃圾回收机制

2019-03-18 15:17 274 查看
版权声明:Ch3nnnnnnnnnn的博客 https://blog.csdn.net/weixin_43064185/article/details/88639597

内存管理机制:

  1. 引用计数:
    最直观高效的内存管理手段, 当一个python对象被应用时其计数会增加1, 当其不再被一个变量引用时则计数减少1. 当引用计数等于0时对象被删除

  2. 垃圾回收
    (1)引用计数
    (2)标记-清除: 当两个对象的引用计数都为1时, 但是仅仅存在它们之间的循环引用, 那么这两个对象都需要被回收的, 也就是说它们的引用计数虽然表现不为0, 但是实际上有效引用计数为0, 所以先将循环引用摘掉, 就能得出这两个对象的有效计数
    (3)分代回收: Python中将所有对象根据生存时间分为3代, 也就是说通过时间换空间, 新的对象放在第0代中, 当经历一次垃圾回收,对象还存在就把该对象放在下一代(第1代中), 如果第1代垃圾回收还存在就放在第2代中. 对于不同代的回收频率是不相同的

  3. 内存池
    Python中的内存机制是呈现金字塔形状
    第3层是最上一层, 是python对象的直接调用
    第2层和第1层, 是内存池 有python接口函数
    第0层, 是C语言的函数操作
    第-1,-2层, 是操作系统进行操作

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: