有没有办法知道一个ElementTree DOM消耗了多少内存?

2024-04-23 18:19:13 发布

您现在位置:Python中文网/ 问答频道 /正文

假设您执行以下操作:

dom = ElementTree()
dom.parse(some_file_path)

我想记录这个dom现在在我的进程中使用的大致内存量。我不需要精确的东西,粗糙的东西就可以了。在

我不认为我能从源XML文件的大小中得到它。我有一个500KB的文件,在加载后,它似乎增加了大约5MB的python进程的内存使用量,如上面的例子所示。在

我查看了elementtreeapi,没有看到任何API提供此信息。有没有人知道在解析/加载XML文件之后ElementTree实例使用了多少内存?在


Tags: 文件path内存api进程parse记录some
1条回答
网友
1楼 · 发布于 2024-04-23 18:19:13

实际上,您需要查找特定python对象的内存消耗。就是这样。这里它是一个ElementTree对象,但它可以是任何东西。在

据我所知,要想省去追查python对象的内存大小,没有简单的方法。您可能会发现的一个问题是Python对象(如list和dicts)可能引用了其他Python对象(在本例中,您的大小是多少?是否包含每个对象的大小?)。有一些指针开销和与对象类型和垃圾回收相关的内部结构。最后,一些python对象具有不明显的行为。例如,在大多数情况下,列表为更多的对象预留空间;dict甚至更复杂,因为它们可以以不同的方式操作(它们对少量的键有不同的实现,有时它们会过度分配条目)。在

相关问题 更多 >