Imported from previous forum
I am pleased to announce that both Java and C version 1.0 of
VTD-XML – an open-source, high-performance and non-extractive
XML processing API – is freely available on sourceforge.net.
For source code, documentation, detailed description of API
and code examples, please visit
http://vtd-xml.sourceforge.net
New in VTD-XML 1.0 is the integrated support of XPath that also
features a easy-to-use interface that further enhances VTD-XML’s
inherent benefits, such as CPU/memory efficiency, random access,
and incremental update. A demo of the XPath capability is available
at
http://vtd-xml.sourceforge.net/demo.html
The core technology of VTD-XML is a binary format specification
called Virtual Token Descriptor (VTD). A VTD record is a 64-bit integer
that encodes the starting offset, length, type and nesting depth of a
token in an XML document. Because VTD records don’t contain actually
token content, they work alongside of the original XML document, which
is maintained intact in memory by the processing model.
VTD’s memory-conserving features can be summarized as follows:
- Avoid Per-object overhead – In many VM-based object-oriented
programming languages, per-object allocation incurs a small amount
of memory overhead. A VTD record is immune to the overhead because
it is not an object. - Bulk-allocation of storage – Fixed in length, VTD records can be
stored in large memory blocks, which are more efficient to allocate
and GC. By allocating a large array for 4096 VTD records, one incurs
the per-array overhead (16 bytes in JDK 1.4) only once across 4096
records, thus reducing per-record overhead to very little.
Our benchmark indicates that VTD-XML processes XML at the performance
level similar to (and often better than) SAX with NULL content handler.
The memory usage is typically between 1.3x ~ 1.6x of the size of the
document, with “1” being the document itself.
Other features included in this release are:
- Incremental update – VTD-XML allows one to modify content of XML
without touching irrelevant parts of the document. - Content extraction – VTD-XML also allows one to pull an element
out of XML in its serialized format. This can be an important
feature for partial signing/encryption of SOAP payload for
WS-security.
For further reading, please refer to the following articles about
VTD-XML
-
Process SOAP with VTD-XML
http://xml.sys-con.com/read/48764.htm -
Better, faster XML processing with VTD-XML
http://www.devx.com/xml/Article/22219?trk=DXRSS_XML -
XML on a chip
http://www.xml.com/pub/a/2005/03/09/chip.html -
Improve XML processing with VTD-XML
http://www.intel.com/cd/ids/developer/asmo-na/eng/dc/xeon/multicore/211657.htm