我对 Groovy 有点陌生,我正在尝试使用 XmlSlurper 读取一个(相当)大的 XML 文件(超过 1Gb),由于它不构建整个 DOM,因此它应该能够在处理大文件时产生奇迹。在记忆中。
尽管如此,我还是不断收到“OutOfMemoryError:Java堆空间”,这让我认为我显然做错了什么。我尝试增加 Xmx 设置,但我宁愿解决问题,因为之后我可能需要处理更大的文件。
这是我使用的代码行:
def posts = new XmlSlurper().parse(new File("posts.xml"))
有什么问题的提示吗?
提前致谢,
Jérémie.
格罗维的XmlSlurper
是一个 SAX 解析器,但将整个模型加载到内存中......
为了避免 OOM 异常,您可能需要增加内存限额(正如您所说,使用-Xmx
设置),或者您可以编写您自己的 SAX 解析器 http://docs.codehaus.org/display/GROOVY/Reading+XML+with+Groovy+and+SAX从文档中获取您需要的数据
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)