问题标签 [objgraph]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
444 浏览

python - 为什么 objgraph 不能捕捉到 np.array() 的增长?

见代码:

结果是:

对于 2,3 和 4 时期,它没有显示任何增长。但它应该表明 numpy.array 的数量在增长

0 投票
1 回答
125 浏览

python - Python GC 中跟踪的任何对象都没有引用者吗?

我计划验证我的 Python 3.6 代码是否有任何循环引用。

给定一个对象,get_referrers https://docs.python.org/3/library/gc.html#gc.get_referrers返回引用该对象的所有对象。但是,以下返回 []

这意味着所有对象都至少有一个引用者。

我还发现https://mg.pov.lt/objgraph/objgraph.html#objgraph.is_proper_module使用模块作为根。

虽然模块仍然可以相互引用......这是找到根的正确方法吗?

0 投票
1 回答
1680 浏览

python-3.x - 未找到图像渲染器(点),不执行任何其他操作

我关注这个文档:https ://mg.pov.lt/objgraph/

objgraph_test.py

当我尝试输出.png图像文件时,它会引发错误:

我已经安装了xdot包。

我该如何解决这个问题?

0 投票
0 回答
52 浏览

python-3.x - 如何获取对象的引用链,不包括弱引用?

我目前正在尝试查找内存泄漏的原因。我发现了导致它的对象,我想使用下面的代码片段(来自 objgraph 教程,关于如何打印 backref 链)。

查看源代码,似乎它做了一个 bfs 来获取从对象到垃圾收集器根的最短路径。

我的问题是所有正在创建的链都包含一个weakref,如果我理解正确,它不是会导致内存泄漏的链。我希望能够看到只有引用的引用链,但我永远看不到它们,因为首先找到了使用弱引用的路径。

有没有办法使用 objgraph 来获取引用链并排除任何包含弱引用的路径?

0 投票
0 回答
51 浏览

python - 如何摆脱 Python 中阻塞内存的变量?

我用 python 写了一个国际象棋引擎,它很快就消耗了 13GB 的内存。我减小了引擎的规模,并使用 objgraph 库来检查程序创建的数据结构的大小。

这是显示的内容:

我知道算法创建的棋盘对象太多,但是如何从内存中删除这些对象?我曾尝试使用 Python 的垃圾收集器库,使用 del 函数在我的程序中手动删除移动的实例,但实例的数量似乎并没有减少。

如何从我的记忆中删除这些实例?

0 投票
0 回答
27 浏览

python - (Python) 打印包含所有对象内存大小的完整 objgraph

当我腌制某个对象时,腌制文件与我预期的相比是巨大的(大约 100MB,我预计大约 100kB)。问题似乎不在于酸洗本身,因为如果我actualsize这个页面使用它会给我大致相同的大小。

我想大致了解我的对象链接到的每个单独对象的大小,所以我知道为什么腌制文件这么大。


我已经尝试过使用 objgraph

我试过使用这个名为 objgraph 的包,它成功地创建了一个图,我什至设法使用“extra_node_attrs”参数用该 obj 的大小注释节点:

但这显示了一个对象树,目测,总大小可能只有几十 kB,几乎没有接近 100MB。

如果我删除了 extra_node_attrs,那么它表明某些对象实际上是列表,其元素未包含在图表中(旁注:我不知道如何使用 extra_node_attrs 来显示)。所以objgraph实际上并不完整。


如何生成对象链接到的所有对象的这样一个概述,所以我知道为什么腌制文件这么大?