0

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

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


我已经尝试过使用 objgraph

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

objgraph.show_refs([my_object], filename='sample-graph.png', extra_node_attrs=lambda obj: dict(label=f"{obj.__class__.__name__}\n{sys.getsizeof(obj)} bytes"))
Image("sample-graph.png")

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

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


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

4

0 回答 0