python-3.x - 如何获取对象的引用链,不包括弱引用?
问题描述
我目前正在尝试查找内存泄漏的原因。我发现了导致它的对象,我想使用下面的代码片段(来自 objgraph 教程,关于如何打印 backref 链)。
objgraph.show_chain(
objgraph.find_backref_chain(
random.choice('MyBigFatObject'),
objgraph.is_proper_module),
output=string_io)
查看源代码,似乎它做了一个 bfs 来获取从对象到垃圾收集器根的最短路径。
我的问题是所有正在创建的链都包含一个weakref,如果我理解正确,它不是会导致内存泄漏的链。我希望能够看到只有强引用的引用链,但我永远看不到它们,因为首先找到了使用弱引用的路径。
有没有办法使用 objgraph 来获取引用链并排除任何包含弱引用的路径?
解决方案
推荐阅读
- django - Pinax npm 安装失败
- c# - C#:无法从 JSON 字符串中获取子值
- python - Odoo划分两个浮点字段 - AttributeError
- java - 在 Windows 上使用 JPackage 是否可以让 main .exe 不作为控制台运行,但让其他 laucher 作为控制台运行?
- c# - 以编程方式获取 Azure 应用服务本地磁盘使用情况
- azure - 令牌在 Blazor WebAssembly 中过期时无法捕获 CosmosException
- c++ - GCC/Clang 分歧:是否
匹配 在 C++17 模板模板替换中? - javascript - Vue.js:如何通过 SourceMap 或捆绑文件打开/处理现有项目
- python - raspberrypi 到 raspberrypi /bluetooth/errorcode 111,连接被拒绝
- c++ - 如果编译后的源代码特定于编译它的硬件,我们如何分发它?