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

Mat*_*und 2 python xml memory dom elementtree

假设您执行以下操作:

dom = ElementTree()
dom.parse(some_file_path)
Run Code Online (Sandbox Code Playgroud)

我想在我的过程中记录这个dom现在使用的大量内存.我不需要精确的东西,粗糙的东西会做.

我不认为我可以从源XML文件的大小派生它.我有一个500千字节的文件似乎在我的python进程的内存使用量增加约5MB后,如上例所示加载它.

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

Sri*_*aju 5

基本上你想要找到特定python对象的内存消耗.就是这样.这是一个ElementTree对象,但它可以是任何东西.

据我所知,缩短追逐时间没有简单的方法来找出python对象的内存大小.你可能会发现的一个问题是Python对象 - 比如列表和dicts - 可能引用了其他python对象(在这种情况下,你的大小是什么?包含每个对象大小的大小?).有一些指针开销和与对象类型和垃圾收集相关的内部结构.最后,一些python对象具有非显而易见的行为.例如,列出大多数时间为更多对象预留空间; dicts甚至更复杂,因为它们可以以不同的方式操作(它们对于少量密钥具有不同的实现,并且有时它们超过分配条目).