我想使用解析器创建一个巨大的xml文件的DOM。但DOM解析器是内存hogger。所以我想知道有没有替代DOM解析器,它不会占用太多内存,但我可以创建它的DOM。还请建议是否有其他有效的算法或解析器来处理这种情况。
答案 0 :(得分:0)
DOM解析器使用大量内存的原因是因为DOM使用了大量内存。
树模型占用的内存少于DOM,例如JDOM2或XOM。它们也更加用户友好。
还有许多其他技术可以减少处理XML时使用的内存,但这一切都取决于解析后你想用XML做什么。
答案 1 :(得分:0)
就像你说的那样,DOM是一个内存hogger,JDOM或DOM4j也有类似的问题......我与JDOM2并不相似,但它似乎与JDOM有许多共性。
DOM内存问题的根本原因实际上是分配许多小的离散对象的固有限制......
VTD-XML与DOM,JDOM和DOM4J大相径庭。它不是分配很多小对象,而是在内部分配大内存块,并且可以节省大量内存......同时仍保留大部分随机访问功能,并且XPath
所以我的建议是不要构建一个DOM ...你真的没有什么可以用你做的vtd-xml你不能用