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都一样.

posted on 2019-07-29 17:07  黑糖A  阅读(165)  评论(0编辑  收藏  举报