dom sax stax解析xml性能分析

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

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

Java 6.0之前,就已经有四种:    

1. DOMDocument Object Model   

2. SAXSimple API for XML   

3. JDOMJava-based Document Object Model   

4. DOM4JDocument Object Model for Java       

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,其次是StAX StreamStAX EventDOMDOM4J也有着不错的表现。性能最差的是JDOM。 

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


原文:http://www.cnblogs.com/hedalixin/archive/2011/12/04/2275453.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值