简化XML处理详解(4)

上一篇 / 下一篇  2008-05-01 21:51:58 / 个人分类:技术文章

内存使用比较

因为SAX和Pull不在内存中构建数据结构,所以只能在DOM(支持及不支持延迟节点扩展特性)和VTD-XML之间进行有意义的比较。为此,本节评测的是乘数,即大文件的内存使用和文档大小之间的比率(因为内存使用是大文件特别关注的问题)。(见图4)

图4 内存使用比较

浏览性能比较

本节从时延方面比较了VTD-XML和DOM(不支持延迟节点扩展特性)的浏览性能,即访问文档中每个节点所用的时间。为了浏览遍全部节 点,DOM代码依靠nodeIterator接口,而VTD-XML代码调用类AutoPilot的成员方法selectElement(...)和 iterate(...)。不出所料,浏览速度比解析快得多。就VTD-XML而言,浏览时间在解析时间的15%到30%之间。DOM的比例是5%到 7%。这倒不是VTD-XML的浏览速度不如DOM; 区别完全在于VTD-XML的解析性能出众得多的缘故。(见表4、表5、表6)



结果分析

在几年前的一次测评中,Piccolo在许多SAX实现方案当中曾被评为总分最高。这回发生了变化: 最新的 Xerces SAX解析器一举成为性能最佳的SAX分析器。另外,本文的测试结果表明,如果与Xerces SAX进行比较,XPP3性能可靠,并不落后多少。

另外值得关注的是,测试结果发现,如果文档很小(不到10KB),DOM解析性能与SAX相差的幅度不如文档很大时两者相差的幅度来得明显。对于小的XML文件,DOM的延迟节点扩展导致解析性能不如支持全部节点扩展的DOM。

不过VTD-XML的性能与其他解析器相比优势明显,可以说无可比拟。而且同样是VTD-XML,使用缓冲器重用和未使用缓冲器重用有重大区别。大大提高了内存使用效率,意味着VTD-XML可以用来处理大的XML文件。各种大小的XML文件都能得到性能方面的好处。

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-10-11  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 82733
  • 日志数: 24223
  • 建立时间: 2007-12-06
  • 更新时间: 2008-06-15

RSS订阅

Open Toolbar