WEB开发网
开发学院软件开发Java Java 中的 XML: 数据绑定,第 2 部分:性能 阅读

Java 中的 XML: 数据绑定,第 2 部分:性能

 2010-04-01 00:00:00 来源:WEB开发网   
核心提示: 图 1. 将大文档读到内存中查看原图(大图)图 2. 将小文档读到内存中查看原图(大图)p> dom4j 构造文档的内存表示所花费的时间不到单独使用解析器所花费时间的两倍,优于该性能的唯一数据绑定框架是 JiBX,Java 中的 XML: 数据绑定,第 2 部分:性能(5),与 dom4j

图 1. 将大文档读到内存中
Java 中的 XML: 数据绑定,第 2 部分:性能

查看原图(大图)

图 2. 将小文档读到内存中
Java 中的 XML: 数据绑定,第 2 部分:性能

查看原图(大图)
p>

dom4j 构造文档的内存表示所花费的时间不到单独使用解析器所花费时间的两倍。优于该性能的唯一数据绑定框架是 JiBX。与 dom4j 相比,JAXB、Quick 和 Zeus 都获得了不错的性能数字,但是所花费的时间整体来说都几乎是 JiBX 的两倍。比较起来,Castor 非常缓慢,使用映射绑定和生成代码都如此。

相对于这些测试中的大多数绑定框架,JBind 的执行速度慢了整整一个数量级。这样拙劣的性能一小部分原因是由于用于 JBind 测试的解析器比较慢(因为它无法使用其它测试所用的解析器)。更大的原因可能是由于 JBind 强制在输入时对照 Schema 进行文档验证,这样会增加大量开销。但是,导致这一拙劣性能的最主要原因可能是由于 JBind 框架本身,该框架使用非常间接的方法来进行绑定(在当前实现中,绑定建立在 DOM 文档模型之上)。

除了 JBind 以外的所有测试都是在不进行完全验证的情况下运行的。大多数数据绑定框架仅按照其设计包含某个固有的验证级别(例如,确保元素的内容模型是匹配的)。大多数框架还可以使用验证解析器(如 Xerces Java 2)在输入时对文档进行完全检查,并且有框架(包括 JAXB)可以在内存中执行绑定数据的完全验证。因为在这些测试中主要关心的是性能,所以我尽可能地禁用了可选验证(包括在 Castor 中使用属性文件和数据分组程序/编组程序设置)。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Java XML 数据

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接