快速业务通道

Java中的XML: 文档模型,第一部分:性能 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
结果。

图 5. 文档内存大小

Java中的XML: 文档模型,第一部分:性能(6)

时间:2011-01-25 IBM Dennis M. Sosnoski

内存大小结果与计时测试不同,因为小的 soap1.xml 文件显示的值表示文件的单个副本而不表示在计时评测中使用的 49 个副本。在大多数模型中,用于简要文档的内存太小以至于无法在图的刻度上显示。

除了 XPP 拉回(直到访问它时才真正构建文档表示)之外,与一些计时测试中显示的差别相比,内存大小测试中模型之间的差别相对较小。延迟的 Xerces 具有最紧凑的表示(当第一次访问表示时将它扩展成基本 Xerces 大小),紧接着是 dom4j。虽然 EXML 废弃包含在其它模型中的空白内容,但是它仍具有最不紧凑的表示。

因为即使最紧凑的模型也要占用大约原始文档文本大小(以字节计)四倍的空间,所以对于大文档来说,所有模型似乎都需要太多的内存。通过提供使用部分文档表示的方法,XPP 拉回和 dom4j 为非常大的文档提供了最好的支持。XPP 拉回通过仅构建实际被访问的表示部分完成该任务,而 dom4j 包含对基于事件处理的支持,使得一次只构建或处理文档的一部分。

Java 序列化

这些测试评测文档表示的 Java 序列化的时间和输出大小。这主要涉及那些使用 Java RMI(“远程方法调用”)在 Java 程序之间传送表示的应用程序(包括 EJB (Enterprise JavaBean) 应用程序)起作用。在这些测试中,仅包含了那些支持 Java 序列化的模型。下列三张图显示了该测试的结果。

图 6. 序列化输出时间

图 7. 序列化输入时间

Java中的XML: 文档模型,第一部分:性能(7)

时间:2011-01-25 IBM Dennis M. Sosnoski

图 8. 序列化文档大小

dom4j 显示了输出(生成序列化的格式)和输入(从序列化的格式重新构建文档)的最好的序列化性能,而 Xerces DOM 显示了最差的性能。EXML 所花费的时间接近 dom4j,但是 EXML 还是具有在表示中使用较少数量对象的优势,因为它废弃空白内容。

如果将文档输出成文本然后进行解析以重新构建文档,而不是使用 Java 序列化,则所有性能 ― 时间和大小 ― 都会好得多。这里的问题是作为大量唯一的小对象的 XML 文档表示的结构。Java 序列化无法有效处理这种类型的结构,这导致时间和输出大小的开销都很高。

可以设计比文本表示小且比文本输入和输出快的文档序列化格式,但是只能通过绕过 Java 序列化来完成。

结束语

不同的 Java XML 文档模型各有所长,但是从性能观点来看,有些模型具有明显的优势。

在大多数方面,XPP 性能处于领先地位。尽管 XPP 是一种新模型,但是对于不需要验证、实体、处理指示信息或注释的中间件类型应用程序来说,它是非常好的选择。它尤其适用于作为浏览器小应用程序或在内存受限的环境下运行的应用程序。

虽然 dom4j 没有与 XPP 同等的速度,但是,它确实提供了具备更标准化的优越性能和功能更全的实现,包括对 SAX2、DOM 甚至 XPath 的内置支持。虽然 Xerces DOM(带有延迟的节点创建)对于小文件和 Java 序列化性能不佳,但是在大多数评测时仍然出色。对于常规 XML 处理,dom4j 和 Xerces DOM 都是很好的选择,对它们的选择取决于您认为是特定于 Java 的特性更重要还是跨语言的兼容性更重要。

JDOM 和 Crimson DOM 在性能测试时一直表现不佳。在小文档情况下还值得考虑使用 Crimson DOM,而 Xerces 表现很差。虽然 JDOM 的开发者已经说明他们期望在正式发行版前专注性能问题,但是从性能观点来看,它确实没有值得推荐之处。然而,如果不进行 API 的重新构建,JDOM 可能难以达到与其它模型匹配的性能。

使用空白的目的

XML 规范通常需要保留空白,但是许多 XML 应用程序使用仅为可读性而保留空白的格式。对于这些应用程序,EXML 废弃隔离

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号