我有一个很大的 python 代码库。在某一时刻,我发现(使用guppy但这并不重要)我有一个现有的类实例BigClass。在代码的这一点上,我不希望有任何活着的实例,BigClass因为它们都应该被释放。我尝试打电话gc.collect()我如何追踪这个实例在哪里,为什么它还活着,它的属性等等?
1 回答
江户川乱折腾
TA贡献1851条经验 获得超5个赞
您可以找到该类的所有实例:
for obj in gc.get_objects():
if isinstance(obj, BigClass):
# DEBUG IT
为了调试实际对象以及它们是如何引用的:
for ref in gc.get_referrers(obj):
# Should probably filter here to reduce the amount of data printed and avoid printing locals() as well
print(ref)
添加回答
举报
0/150
提交
取消