该设计灵感来源于VTD-XML ,我所见到的最快的java XML解析器,比StAX和SAX Java标准XML解析器更快。 两个基本解析器类型 解析器有多种分类方式。 如前所说,该设计受VTD-XML的启发, VTD是虚拟令牌描述符(Virtual Token Descriptor)的英文缩写。因此,你可以叫它虚拟令牌描述符解析器。 VTD-XML实际上会将所有这些信息压缩成一个Long型,以节省空间。处理速度会有损失,因为额外的位操作收拾单独字段到单个整型或long型中,不过你可以节省一些内存。总而言之,这是一个权衡。 基准化分析 VTD-XML对StAX,SAX和DOM解析器等XML解析器做了的广泛的基准化比较测试。在核心性能上,VTD-XML赢得了他们。 VTD-XML中的索引包含元素的缩进层次,以及同一层的下一个元素(下一个同级)的引用,带有更高缩进层的第一个元素(初始元素),等等。这些都是增加到线性解析器元素索引顶部的整型索引。
这种设计是受到了VTD-XML的设计方式的启发,后者是我所见过的最快的Java XML解析器,比起StAX和SAX这两种标准的Java XML解析器都要快上许多。 如同我之前所说的,这种设计方式是受到了VTD-XML(VTD是指虚拟令牌描述符)的启发,因此你也可以把这种解析器称为虚拟令牌描述符解析器。 VTD-XML实际上将所有这些信息都保存在一个长整数类型中,以达到节省空间的目的。 性能基准测试 VTD-XML已经为它的XML解析器与StAX、SAX和DOM解析器进行过大量的性能基准比较测试了,从性能上来看VTD-XML无疑是最大的赢家。