0

使用从 JAXB 编组的 DOM 时,我遇到了极差的性能。长话短说,当我使用以 XML 文件创建的 DOM 作为其源进行 XSL 转换时,大约需要 30 秒。使用通过将 JAXB 结构编组为 DOM 创建的 DOM 执行相同的转换需要大约 2 小时。毫不夸张。特别有趣的是,XML 文件源来自 toString-ing 由 JAXB 创建的 DOM,因此正在处理相同的对象。

我正在使用 Saxon 9HE、Xerces 2.11 和 JAXB 2.1.9。

我分析了这两种情况,我发现最有趣的事情是文件来源的 DOM 命中方法 net.sf.saxon.tree.util.Navigator$DescendantEnumeration.advance() 大约 1650 万次。在我杀死它之前,JAXB 源 DOM 调用了它超过 45亿次。显然,有些不同。

当然,这背后还有更多信息,但我想知道这是否对任何人敲响了警钟,以及是否有一个我没有找到的明显答案。

提前致谢!

4

0 回答 0