首页 > 编程语言 >python存储机制||垃圾回收机制||分代回收

python存储机制||垃圾回收机制||分代回收

时间:2023-02-19 00:55:05浏览次数:46  
标签:python 回收 对象 垃圾 机制 引用

关于python的存储问题

(1)由于python中万物皆对象,所以python的存储问题是对象的存储问题,并且对于每个对象,python会分配一块内存空间去存储它

(2)对于整数和短小的字符等,python会执行缓存机制,即将这些对象进行缓存,不会为相同的对象分配多个内存空间

(3)容器对象,如列表、元组、字典等,存储的其他对象,仅仅是其他对象的引用,即地址,并不是这些对象本身

 

垃圾回收机制

Python的垃圾回收机制采用引用计数机制为主,标记-清除和分代回收机制为辅的策略。

其中,标记-清除机制用来解决计数引用带来的循环引用而无法释放内存的问题,

分代回收机制是为提升垃圾回收的效率。

从基本原理上,当Python的某个对象的引用计数降为0时,说明没有任何引用指向该对象,

该对象就成为要被回收的垃圾了。比如某个新建对象,它被分配给某个引用,对象的引用计数变为1。

如果引用被删除,对象的引用计数为0,那么该对象就可以被垃圾回收。

 

分代回收

Python将所有的对象分为0,1,2三代;

所有的新建对象都是0代对象;

当某一代对象经历过垃圾回收,依然存活,就被归入下一代对象。

Python将所有的对象分为0,1,2三代。所有的新建对象都是0代对象。

当某一代对象经历过垃圾回收,依然存活,那么它就被归入下一代对象。

垃圾回收启动时,一定会扫描所有的0代对象。如果0代经过一定次数垃圾回收,那么就启动对0代和1代的扫描清理。

当1代也经历了一定次数的垃圾回收后,那么会启动对0,1,2,即对所有对象进行扫描。

 

标签:python,回收,对象,垃圾,机制,引用
From: https://www.cnblogs.com/mengdie1978/p/17134098.html

相关文章

  • Python多进程与多线程
    多进程更适合CPU密集型任务,而多线程更适合IO密集型任务。多进程multiprocessing模块importmultiprocessingdefmy_function(arg1,arg2):print("Dosomethingw......
  • Python学习笔记(二)变量的使用
    一、变量的定义把程序运算的中间结果临时存到内存里,以备后面的代码继续调用,这几个名字的学名就叫做“变量”可以把变量看做保存信息的容器,它们的目的是在内存中标注和存......
  • 注意力机制(3)
    链接:https://www.zhihu.com/question/68482809/answer/264632289 作者:张俊林深度学习中的注意力机制从本质上讲和人类的选择性视觉注意力机制类似,核心目标也是从众多信......
  • self-attention自注意力机制 2
    https://blog.csdn.net/Michale_L/article/details/126549946 三、Self-Attention详解针对输入是一组向量,输出也是一组向量,输入长度为N(N可变化)的向量,输出同样为长度为N......
  • [oeasy]python0086_ASCII_出现背景_1963年_DEC_PDP系列主机_VT系列终端
    编码进化回忆上次内容上次回顾了字符编码的新陈代谢ibm曾经的EBCDIC由于字符不连续导致后续出现无数问题随着网络的发展数据交换的需要原来的小隐患现在产生了......
  • 8K-15K的python工作,你,来吗?
    嗨害大家好鸭!我是小熊猫~本次采集网站如下图:源码资料电子书:​​点击此处跳转文末名片获取​​主要运用知识点:1.re正则表达式模块的简单使用2.requests模块的使用3.保存c......
  • [oeasy]python0086_ASCII_出现背景_1963年_DEC_PDP系列主机_VT系列终端
    编码进化回忆上次内容上次回顾了字符编码的新陈代谢ibm曾经的EBCDIC由于字符不连续导致后续出现无数问题随着网络的发展数据交换的需要原来的......
  • Python实现单例模式
    Python实现单例模式有两种方法:一种是通过静态变量方法实现单例模式;另一种是通过装饰器实现单例模式。具体实现代码如下:#方法一:静态变量方法实现单例模式。#1.构造方法私有......
  • 一文看尽深度学习中的各种注意力机制
    前言 本文以通俗易懂的方式,介绍注意力机制的系列变形方法。 本文转载自CVHub作者|派派星 欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、......
  • GAN中对生成器和判别器更新机制的理解
    首先是这2个网络是交替迭代训练。可以是1:1迭代即D_update_ratio==1,那么G和D之间是1:1的方式进行参数更新若D_update_ratio==2,那么首先更新两次D再更新一次G更新G的时候......