为什么说 SAX 比 DOM4J 解析 xml 性能低?
目前公认的XML解析器性能最好的是 DOM4J
我的疑问:
DOM4J 是基于DOM文档树结构来进行解析的,来解析xml文件之前,会将整个 XML文档装载入内存形成完整的 DOM数结构,然后进行 DOM 节点的读取。
而 SAX 处理的优点非常类似于流媒体的优点,分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中;这对于大型文档来说是个巨大的优点;事实上,应用程序甚至不必解析整个文档;它可以在某个条件得到满足时停止解析;一般来说,SAX还比它的替代者DOM快许多。
但是网上有很多的 DOM, DOM4J, JDOM, SAX 对比,得出的性能结论是:
DOM4J > SAX > DOM > JDOM
我就感到很奇怪,SAX 的性能怎么就比 DOM4J 低了呢? 流的处理方式应该是最快的啊?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
看了下官网,Dom4j好像支持SAX解析。。。
我看了网上很多的对比,基本上都是这么说的
like this one? http://stackoverflow.com/questions/2520950/difference-in-performance-between-stax-and-dom-parsing
几年前我测试过,的确是这样的,df实在需要才加载,所以最快,不关xpath的事,sax读快,dom全部读进内存所以写快读慢。但这都不是重点,dom4鸡主要是文档诱人,直接扒代码,猪都会
你有自己测试过并贴下测试数据么?
SAX執行速度快
DOM編碼速度快 =_='''
因为dom4f支持xpath
我个人认为 SAX 的性能应该比 DOM4J 快。