JDOM性能(jdom performance)

2019-09-16 12:16发布

我目前使用的本地Java XML处理库(的Xerces)。 因为我需要的XML节点随机存取我不能使用任何SAX解析器。 我发现CPU使用率100%,当我解析XML文件。 有大量的小尺寸(1-10kb),我喜欢处理这 - 的

while(hasFile){
processXMlfile(hasFile.next);
}

在processXMlfile()我建立解析和处理文件。

如果我移动到JDOM库,我将获得任何性能优势?

Answer 1:

瓶颈可能是XML解析,以及JDOM可能会使用相同的XML解析器在幕后,所以不会有任何区别。

当你解析大量小文件的一个关键因素是避免解析器初始化成本。 重复使用相同的XML解析器实例的所有文件。



Answer 2:

JDOM 2.0.0解决了一些性能问题。 其中之一是直接关系到XML文件中的“死循环”的处理。

看一下:

http://hunterhacker.github.com/jdom/jdom2/apidocs/org/jdom2/input/sax/package-summary.html

你应该这样做:

SAXBuilder saxbuilder = new SAXBuilder();
saxbuilder.setVariousConfigurations()
SAXEngine saxengine = saxbuilder.buildEnine();

while(hasfile) {
  processXML(saxengine, nextfile);
}

在JDOM 2.0.0使用SAXEngine概念将完全消除SAX-解析基础设施的设置。 该设置的时间占整个处理。第一个巨大的proprotion。

虽然你可能仍然在100%运行,宇会发现你的吞吐量将增加一倍多可能....



文章来源: jdom performance