阅读内存泄漏解析r中的XML(包括链接的帖子)和R帮助上的这篇文章,并且鉴于已经过了一段时间,我仍然认为这是一个值得关注的未解决的问题,因为该XML软件包在整个R宇宙中被广泛使用.
因此,请将此视为后续帖子和/或参考,并提供有希望的信息性但简洁的问题说明.
以后可以使用XPath搜索XML/HTML文档的方式需要内部使用C指针(AFAIU).而且似乎至少在MS Windows上(我在Windows 8.1,64位上运行)这些引用都没有被垃圾收集器正确识别.因此,消耗的内存未被正确释放,这导致在某个时刻冻结R进程.
对我而言,似乎XML:free和/或gc确实/ /或不识别通过或随后使用等处理XML/HTML文档时涉及的所有内存:xmlParsehtmlParsexpathApply
报告的OS任务(Rterm.exe)的内存使用量显着增加,而R进程的报告内存"从R内看"(函数memory.size)适度增加(相比之下).请参阅列表元素mem_r,mem_os以及ratio下面的实质解析周期之前和之后.
所有的一切,并已建议一切抛(free,rm和gc),内存使用率仍然一直增加时xmlParse等被调用.这只是一个多少的问题.所以恕我直言必须仍然有一些不正常的东西.
我从Duncan的Omegahat git存储库中借用了性能分析代码.
一些准备:
Sys.setenv("LANGUAGE"="en")
require("compiler")
require("XML")
> sessionInfo()
R version 3.1.0 (2014-04-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=German_Germany.1252 LC_CTYPE=German_Germany.1252
[3] LC_MONETARY=German_Germany.1252 LC_NUMERIC=C
[5] LC_TIME=German_Germany.1252
attached base packages: …Run Code Online (Sandbox Code Playgroud)