dom sax stax解析xml性能分析

Java6.0野马(MustangJava6.0代号)相比老虎(TigerJava5.0代号)来说,从性能的提升、脚本语言(JavascriptJRubyGroovy)的支持、对java.io.File的扩展到桌面应用的增强等各个方面,本领着实大了不少。Java6.0XML支持的新特性有许多方面。比如StAX、针对XML-Web服务的Java架构(JAX-WS2.0、针对XML绑定的APIJAXB2.0XML数字签名API,甚至还支持SQL:2003'XML'数据类型。

StAX是StreamingAPIforXML的缩写,是一种针对XML的流式拉分析API。关于对XML进行分析(或解析)的技术,大家一定都不陌生了。

Java6.0之前,就已经有四种:

1.DOM:DocumentObjectModel

2.SAX:SimpleAPIforXML

3.JDOM:Java-basedDocumentObjectModel

4.DOM4J:DocumentObjectModelforJava

StAX采用流模型中的拉模型分析方式。提供基于指针和基于迭代器两种方式的支持。

优点:1、接口简单,使用方便。2、采用流模型分析方式,有较好的性能。

缺点:1、单向导航,不支持XPath,很难同时访问同一文档的不同部分。

为了比较这五种方式在解析XML文档时的性能表现,我们来创建三个不同大小的XML文档:smallusers.xml100KB)、middleusers.xml1MB)、bigusers.xml10MB)。我们分别用以上五种解析方式对这三个XML进行解析,然后打印出所有的用户信息,并分别计算它们所用的时间。

单位:s(秒)

100KB 1MB 10MB
DOM 0.146s 0.469s 5.876s
SAX 0.110s 0.328s 3.547s
JDOM 0.172s 0.756s 45.447s
DOM4J 0.161s 0.422s 5.103s
StAX Stream 0.093s 0.334s 3.553s
StAX Event 0.131s 0.359s 3.641s

由上面的测试结果可以看出,性能表现最好的是SAX,其次是StAXStreamStAXEventDOMDOM4J也有着不错的表现。性能最差的是JDOM

所以,如果你的应用程序对性能的要求很高,SAX当然是首选。如果你需要访问和控制任意数据的功能,DOM是个很好的选择,而对Java开发人员来讲,DOM4J是更好的选择。如果只需要做XML文档解析的话,综合性能、易用性、面向对象特征等各方面来衡量,StAXEvent无疑是最好的选择。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值