为什么说 SAX 比 DOM4J 解析 xml 性能低?

山哥 发布于 2012/05/23 16:47
阅读 4K+
收藏 1

目前公认的XML解析器性能最好的是 DOM4J

我的疑问:

DOM4J 是基于DOM文档树结构来进行解析的,来解析xml文件之前,会将整个 XML文档装载入内存形成完整的 DOM数结构,然后进行 DOM 节点的读取。

而 SAX 处理的优点非常类似于流媒体的优点,分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中;这对于大型文档来说是个巨大的优点;事实上,应用程序甚至不必解析整个文档;它可以在某个条件得到满足时停止解析;一般来说,SAX还比它的替代者DOM快许多。

但是网上有很多的 DOM, DOM4J, JDOM, SAX 对比,得出的性能结论是:

                    DOM4J > SAX > DOM > JDOM

我就感到很奇怪,SAX 的性能怎么就比 DOM4J 低了呢? 流的处理方式应该是最快的啊?

加载中
0
山哥
山哥
我个人认为 SAX 的性能应该比 DOM4J 快。
0
汪林
汪林
因为dom4f支持xpath
山哥
山哥
支持xpath应该不是原因吧,正是支持xpath,DOM4J必须加载整个XML文档啊
0
catty
catty

SAX執行速度快

DOM編碼速度快 =_='''

0
核桃博客
核桃博客

你有自己测试过并贴下测试数据么?

 

 

0
圣何塞白话人
圣何塞白话人
几年前我测试过,的确是这样的,df实在需要才加载,所以最快,不关xpath的事,sax读快,dom全部读进内存所以写快读慢。但这都不是重点,dom4鸡主要是文档诱人,直接扒代码,猪都会
0
浪客Dandy
浪客Dandy

你是不是只看了中文资料啊

为什么我看到的都是说StAX快

浪客Dandy
浪客Dandy
like this one? http://stackoverflow.com/questions/2520950/difference-in-performance-between-stax-and-dom-parsing
山哥
山哥
我看了网上很多的对比,基本上都是这么说的
0
乌龟壳
乌龟壳
看了下官网,Dom4j好像支持SAX解析。。。
返回顶部
顶部