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

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

 2010-04-01 00:00:00 来源:WEB开发网   
核心提示: 通常,根据所用文档的大小不同,Java 中的 XML: 数据绑定,第 2 部分:性能(3),XML 框架的相对性能会有巨大差异,因此在这些性能测试中,这导致一种非常紧凑的内部表示,对于其中大多数数据值都需要保存为 String 的文档而言,我同时包含了大文档和小文档,大文档( time-comp

通常,根据所用文档的大小不同,XML 框架的相对性能会有巨大差异,因此在这些性能测试中,我同时包含了大文档和小文档。大文档( time-comp.xml和 time-full.xml)使用相同的数据值(分别以如上所示的两种不同格式表示)。因此大小明显不同(紧凑格式的为 106 KB,而完整格式的为 211 KB)。小文档都在集合中,每个集合包含 34 个文档,紧凑格式( ttcomp)的大小从 1.4-3.3 KB 不等,完整格式( ttfull)的大小从 2.2-5.8 KB 不等。与大文档一样,小文档集合中的相应文档包含相同的数据值。可以从下载页面获得测试中使用的完整文档集。

数据绑定字典

下面是我在本文中使用的一些术语的一个袖珍字典:

编组(Marshalling)是在内存中为对象生成 XML 表示的过程。与 Java 对象序列化一样,该表示需要包含所有从属对象:我们的主对象引用的那些对象,以及那些对象引用的对象等等。

数据分解(Unmarshalling)是编组的逆过程,它根据 XML 表示在内存中构建对象(可能还有一幅链接对象的图)。

映射(Mapping)是一组规则,用于显式地将对象编组到 XML 文档和根据 XML 文档分解对象。使用代码生成(基于文档的 DTD 或 W3C XML Schema 描述)的数据绑定方法通常包含隐式的映射,这些映射内置在已构造的对象中,因此在本文中,术语 映射只用于将用户定义的 Java 对象与 XML 文档进行关联的方法。

我更希望这些结果能使用更多的文档变体而不只有两种格式来进行测试。但是,由于需要为代码生成提供 W3C XML Schema(Schema)和文档类型定义(Document Type Definition,DTD)描述,还要为映射版本提供映射文件和基类,因此为数据绑定测试添加更多文档所涉及的工作量是可观的。本文使用的两种格式(包含大文档和小文档变体)至少会相当具有代表性地说明,对于典型的业务文档,数据绑定备用方案是如何执行的。但是,由于这些文档中的大多数数据值可以转换成基本类型,所以它们可能会使映射绑定方法显示出,内存使用情况将好于典型的普通文档。这导致一种非常紧凑的内部表示。对于其中大多数数据值都需要保存为 String 的文档而言,映射绑定方法的内存优势就会被削弱。

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

Tags:Java XML 数据

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