import objgraph # 可以用来检测内存泄漏
if __name__ == '__main__':
a = list()
b = list()
# 查看list类型对象的数量
# output: n
print(objgraph.count('list'))
a.append(b)
b.append(a) # 循环引用
print(a)
print(b)
del a
del b
# 再次查看list类型对象的数量
# output: n
print(objgraph.count('list'))
它的输出如下,在删除了a和b的引用以后,list类型的对象数量不变,说明a,b产生了循环引用。
205
[[[...]]]
[[[...]]]
205
如果把造成循环引用那句代码注释掉,重新运行。输出如下。
205
[[]]
[]
203
本文代码已经归档到github,您可以访问下面的链接获得。 欢迎star该代码仓库