为了账号安全,请及时绑定邮箱和手机立即绑定

python - 查找泄漏对象

python - 查找泄漏对象

小怪兽爱吃肉 2023-07-05 15:26:21
我有一个很大的 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)


查看完整回答
反对 回复 2023-07-05
  • 1 回答
  • 0 关注
  • 83 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信