python变量内存管理
变量存哪了
变量存放在内存中,每定义一个变量就会在电脑的内存中开辟一个小空间,小空间存放变量值,然后内存给这个小空间一个变量名,变量名指向变量值.
引用计数
x=10 #定义变量
y=x #10的引用计数加1
del y #释放的是引用计数,10的引用计数为1
del x #引用计数为0
当引用计数为0时,触发垃圾回收机制,释放内存占用
垃圾回收机制
定义x=10,内存开辟一个内存空间存储变量值10.如果再加上一串代码x=11,内存会开辟另一个内存空间存储变量11,把变量值绑定另一个变量名x,由于之前有x,所以内存会解除x与10的连接让x与11连接.此时10没有了变量名x所以成为了python眼中的垃圾,python会处理掉这个垃圾并释放10的内存占用.
小整数池
为避免重复创建相同的值而重复申请内存空间带来的效率问题,python解释器会在启动时创建小整数池,范围是[-5,256],该范围内小整数对象永远不会被垃圾回收机制回收.pycharm中做了优化,间隔时间短的无论多大id都一样.