1、例如:
import gc
import sys
gc.set_debug(gc.DEBUG_STATS|gc.DEBUG_LEAK)
a=[]
b=[]
a.append(b)
print 'a refcount:',sys.getrefcount(a)
print 'b refcount:',sys.getrefcount(b)
del a
del b
print gc.collect()
不能进入垃圾,
a,b都被切断,而且a.append(b)也不存在循环,为什么还是无法回收垃圾?
2、还有一个问题
我在windows中有一个数组a[],里面放了10k+条数据,内存显示60%,在del a、gc.collect()之后内存立马降至52%;
但是同样的代码操作在centos中却不起作用,内存释放不出来。
请教大家!!!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
你都显式地删除了这两个变量,并且你也说了,
不存在循环引用,那就直接被删掉了呗,哪还有垃圾?这样就可以看到垃圾收集的效果了