python如何进行内存管理

liftword4个月前 (03-20)技术文章58

关于首先python进行内存管理就不得不提到Python解释器在何种情况下会释放变量的内存。Python引用了内存计数这一简单的计数来控制。当一个变量的引用计数为0的时候,就会被解释器回收。当然在交互模式下,内存不会马上释放,重新启动解释器就会释放了。

下面是引用计数的知识:

1) 增加引用计数 当对象被创建并(将其引用)赋值给变量时,该对象的引用计数被设置为1。

对象的引用计数增加的情况:

对象被创建:x = 3.14

另外的别名被创建:y = x

被作为参数传递给函数(新的本地引用):foobar(x)

成为容器对象的一个元素:myList = [123, x, 'xyz']

2) 减少引用计数 对象的引用计数减少的情况:

一个本地引用离开了其作用范围。如foobar()函数结束时

对象的别名被显式销毁:del y

对象的一个别名被赋值给其他对象:x = 123

对象被从一个窗口对象中移除:myList.remove(x)

窗口对象本身被销毁:del myList

3) del语句 Del语句会删除对象的一个引用,它的语法如下:del obj[, obj2[, ...objN]]

例如,在上例中执行del y会产生两个结果:

从现在的名称空间中删除y

x的引用计数减1

下面我们来试验一下

import sys
 
x = 3.14
print("原始引用值:", sys.getrefcount(x))
y = x
print("被y引用后:", sys.getrefcount(x))
 
x = 4.0
print("重新赋值后:", sys.getrefcount(x))
 
del y
print("删除y引用后:", sys.getrefcount(x))
原始引用值: 3
被y引用后: 4
重新赋值后: 3
删除y引用后: 3

相关文章

一文读懂 Python 的内存管理

Python 是一种高级编程语言,以其简单性和可读性而闻名。它的主要功能之一是自动内存管理,这对开发人员来说至关重要,因为它抽象了手动内存分配和释放的复杂性。本文旨在深入了解 Python 的内存管...

一文掌握Python内存管理

Python中的内存是由Python内存管理器(Python memory manager)来管理的,它涉及到一个包含所有Python对象和数据结构的私有堆(heap)。Python内存管理器有不同的...

喂!你这个python的内存是不是爆了?喏,拿这个去测试一下看看

你是否曾经为python程序的内存占用问题头疼不已?是否觉得内存泄漏、对象占用过多内存等问题难以排查?别急,今天我要介绍一个神器——pympler,让你轻松搞定python内存分析!01什么是pymp...

你的手机是不是经常提示存储空间不足?Python帮你清理重复文件

  最近我的手机经常提示存储空间不足,主要是微信和QQ群里接收的文件太多了,平时也没怎么整理。我把这些文件从手机里拷出来,打算整理一下,把该删的文件都删掉,把要备份的文件分门别类存到电脑或网盘上。我突...

Python 中如何进行内存优化

在 Python 中进行内存优化可以帮助减少程序的内存占用,提高性能。以下是一些常见的内存优化技巧:使用生成器表达式和生成器函数: 如果你需要处理大量的数据集合,尤其是需要一次性加载到内存中的数据,可...

11-Python变量

1-变量1-1-概念用于存储可变数值的内存单元,称为变量1-2-语法变量: 给它一个名字,并使用等号(=)将其与某个值关联起来x = 10 # 创建一个整数变量 y = "Hello" # 创建一个字...