如何解决有没有办法找出修改或创建列表的行或功能?
我在使用gc.get_referrers
的python程序中发现了可能的内存泄漏,但是我找不到哪个对象拥有该对象:
class Foo:
def __init__(self,i,j):
self.i = i
self.j = j
def do_stuff(obj):
# do stuff with obj
objs = gc.get_objects()
ls = [obj for obj in objs if isinstance(obj,Foo)]
foo = ls[0]
refs = gc.get_referrers(foo)
l = None
for ref in refs:
if type(ref) == list:
if len(ref) > 1000:
l = ref
objgraph.show_backrefs([gc.get_referrers(l)[0]],filename='sample-backref-graph.png')
这只是给我一个这样的图形:
Foo object <--- list of 100k foo object <--- list of lists
试图递归地找到它,但是我找不到任何不是列表的东西。那么,有没有办法找出哪个函数写入了此列表,或者至少找到了创建该函数的那一行?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。