• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

JDOM真的比DOM4j要慢么?

发布: 2007-7-01 18:47 | 作者: admin | 来源: | 查看: 26次 | 进入软件测试论坛讨论

领测软件测试网
 有一部分xml解析器使用者认为 JDOM 很慢,至少比起Dom4j来说效率不快。其实JDOM和DOM4J一样,同属优秀的开源XML解析器, 完全不必这样担心。 现在就实际拿一些实际使用的例子,作为简单的测试用例,对JDOM以及DOM4J最基本的文档解析功能来说明这个问题。 JDOM测试用例如下:   
  public Document getDoc(String filename) throws IOException, JDOMException {        SAXBuilder sb = new SAXBuilder();

//    SAXBuilder sb = new SAXBuilder("org.apache.crimson.parser.XMLReaderImpl");        Document doc = null;          //传递的是文件路径时        doc = sb.build(new FileInputStream(filename));

        return doc;    }

DOM4J测试用例如下 
public Document getDoc(String filename) throws FileNotFoundException, DocumentException {        SAXReader sb = new SAXReader();

        Document doc = null;

        //传递的是文件路径时        doc = sb.read(new FileInputStream(filename));

        return doc;    }

测试平台环境:Intel 1.4G 迅驰 768MB , winXp Pro sp2, JDK 1.4.2 JDOM版本 1.0RC1DOM4j版本 1.5.2



  public Document getDoc(String filename) throws IOException, JDOMException {        SAXBuilder sb = new SAXBuilder();

//    SAXBuilder sb = new SAXBuilder("org.apache.crimson.parser.XMLReaderImpl");        Document doc = null;          //传递的是文件路径时        doc = sb.build(new FileInputStream(filename));

        return doc;    }

DOM4J测试用例如下 
public Document getDoc(String filename) throws FileNotFoundException, DocumentException {        SAXReader sb = new SAXReader();

        Document doc = null;

        //传递的是文件路径时        doc = sb.read(new FileInputStream(filename));

        return doc;    }

测试平台环境:Intel 1.4G 迅驰 768MB , winXp Pro sp2, JDK 1.4.2 JDOM版本 1.0RC1DOM4j版本 1.5.2


public Document getDoc(String filename) throws FileNotFoundException, DocumentException {        SAXReader sb = new SAXReader();

        Document doc = null;

        //传递的是文件路径时        doc = sb.read(new FileInputStream(filename));

        return doc;    }

测试平台环境:Intel 1.4G 迅驰 768MB , winXp Pro sp2, JDK 1.4.2 JDOM版本 1.0RC1DOM4j版本 1.5.2

两者均不指定SAX解析器类,都是用SAX事件方式得到Document树型结构

测试文档样见文档最后,为数层结构XML文档。

每个测试用例每组同时做200次为5组,察看总体解析速度JDOM6.93s 6.94s 6.96s 7.05s 7sDOM4J7.551s 7.581s 7.631s 7.55s 7.621s

从结果来看JDOM和DOM4J解析速度为同一级别,可能不同的文档速度稍微有差别,当JDOM XML SAX解析器换成 org.apache.crimson.parser.XMLReaderImpl 的时候,速度会提高0.5s左右,而DOM4j提高0.2s左右。另外我还对多个结构的XML文档解析,2万多行的XML文档解析,均没有发现JDOM解析比DOM4j慢的情况,速度基本是两者55分。有些JDOM快,有些DOM4j快,有兴趣的读者可以自己做做试验。

关于一些在解析的时候速度变慢,还有内存溢出的说法,我看还是由于其他的原因导致的,或者遍历写法有问题所至。所以无论是使用DOM4j还是JDOM都可以按照自己的喜欢爱好使用,完全不必担心所谓的速度问题。


延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网