论文部分内容阅读
XML(eXtensible Markup Language)是一种广泛使用的标记语言,用来定义各种XML文档,应用于Web数据传输、数据集成、文档存储等场合。DOM(Document Object Model)是W3C组织定义的一种XML文档处理模型,其比较简单,有统一的规范,不依赖于特定的XML解析器,同时在工业界拥有若干功能完善的实现者,因而得以普遍应用。JDK(Java Development Kit)1.4在JAXP(Java API for XML Processing)中也定义了专门的接口来支持DOM。 本文充分考虑了DOM模型的特点,设计和实现了一个高性能的DOM解析器:OnceDOMParser。在设计OnceDOMParser的时候,主要从两个方面着手来提高性能:减少JVM(Java Virtual Machine)中小对象的数量和数据的延迟装载。我们设计和实现了“用户堆”来存放程序中用到的数据,从而减少JVM中对象的数量,降低其管理大量对象带来的额外开销;同时针对DOM模型中大量的集合对象,我们采取了“紧凑存储”的方式,将多个集合对象存放在一个数组中,可以减少JVM中数组的数量和空间的浪费。另外,对于DOM模型中经常使用的查询结果,我们采用延迟加载的方式,在用户真正访问结果中某项数据的时候再去DOM模型中执行查找。 为了测试OnceDOMParser的功能,本文实现了XML兼容性测试程序,该程序扩展了JUnit自动化测试框架,可以针对两千多个XML文档自动地测试OnceDOMParser与XML规范的符合程度。同时,本文也实现了DOM兼容性测试程序,用来测试OnceDOMParser与DOM规范的符合程度。 本文最后使用Sun公司的XML性能测试工具XML Test测试了OnceDOMParser和目前广泛使用的Xerces解析器,比较二者的性能,最终发现前者的性能比后者高出10%左右,因而说明了OnceDOMParser的设计和实现对于性能的提高是切实有效的。