在java中解析XML的内存效率最高的方法是什么?

时间:2011-09-07 10:13:43

标签: java xml memory

我有webapp的内存问题,解决XML事件并将它们推送到RabbitMQ总线。这个webapp在servlet中接收XML事件,我们将其解码并将其推送到我们的总线,然后我们确认发送者。我们在java 5中使用org.xml.sax.helpers.DefaultHandler,但似乎Stax(使用XMLStreamReader)更好并且仍然易于阅读,但我们需要将代码迁移到java6(参见{{3在SO)。值得吗?

在java中解析XML的内存效率最高的方法是什么?我们正在寻找快速内存效率以及易于编写/读取代码。这是否存在?

3 个答案:

答案 0 :(得分:3)

事件驱动的解析器不会构建AST,因此速度快,内存效率高。 XML的标准将由SAX standard定义。

The Xerces implementation claims to be fast.

答案 1 :(得分:1)

NanoXML是一个非常小巧轻便的XML解析器,支持SAX解析。它是Xerces的一个很好的替代品。

答案 2 :(得分:0)

要注意提到萨克斯的答案,因为它的代价是效用显着降低。在没有牺牲可用性的情况下,最节省内存的sax解析是vtd-xml。这是证据

使用Java处理XML - 性能基准http://sdiwc.us/digitlib/journal_paper.php?paper=00000582.pdf

相关问题