我已经使用 DOM 很长时间了,因此 DOM 解析性能非常好。即使在处理大约 4-7 MB 的 XML 时,解析速度也很快。我们使用 DOM 面临的问题是内存占用,一旦我们开始处理大型 XML,它就会变得巨大。
最近我尝试转移到 Stax(XML 的流式解析器),它被认为是第二代解析器(阅读有关 Stax,它说它现在是最快的解析器)。当我为大型 XML 尝试使用 Stax 解析器时,大约 4MB 的内存占用肯定大大减少了,但是解析整个 XML 并从中创建 java 对象的时间几乎比 DOM 增加了 5 倍。
我使用了 Stax 的 sjsxp.jar 实现。
我可以从逻辑上推断出,由于解析器的流式特性,性能可能不是非常好,但减少了 5 时间(例如,DOM 需要大约 8 秒来为这个 XML 构建对象,而 Stax 解析平均需要大约 40 秒) 绝对不会被接受。
我是否完全错过了一些观点,因为我无法接受这些性能数据