summaryrefslogtreecommitdiff
path: root/xsd-examples/cxx/tree/performance/README
diff options
context:
space:
mode:
Diffstat (limited to 'xsd-examples/cxx/tree/performance/README')
-rw-r--r--xsd-examples/cxx/tree/performance/README62
1 files changed, 62 insertions, 0 deletions
diff --git a/xsd-examples/cxx/tree/performance/README b/xsd-examples/cxx/tree/performance/README
new file mode 100644
index 0000000..0206387
--- /dev/null
+++ b/xsd-examples/cxx/tree/performance/README
@@ -0,0 +1,62 @@
+This example measures the performance of parsing and serialization in
+the C++/Tree mapping. It also shows how to structure your code to
+achieve the maximum performance for these two operations.
+
+The example consists of the following files:
+
+test.xsd
+ XML Schema which describes the test vocabulary.
+
+test-50k.xml
+ Test XML document.
+
+gen.cxx
+ Program to generate a test document of desired size.
+
+time.hxx
+time.cxx
+ Class definition that represents time.
+
+test.hxx
+test.ixx
+test.cxx
+ C++ types that represent the given vocabulary, a set of parsing
+ functions that convert XML documents to a tree-like in-memory object
+ model, and a set of serialization functions that convert the object
+ model back to XML. These are generated by the XSD compiler from
+ test.xsd.
+
+parsing.cxx
+ Parsing performance test. It first reads the entire document into
+ a memory buffer. It then creates a DOM parser and pre-parses and
+ caches the schema if validation is enabled. Finally, it runs the
+ performance measurement loop which on each iteration parses the
+ XML document from the in-memory buffer into DOM and then DOM to
+ the object model.
+
+serialization.cxx
+ Serialization performance test. It first parses the XML document
+ into the object model. It then creates a memory buffer into which
+ the document is serialized and a DOM serializer. Finally, it runs
+ the performance measurement loop which on each iteration serializes
+ the object model to DOM and DOM to XML.
+
+driver.cxx
+ Driver for the example. It first parses the command line arguments.
+ It then initializes the Xerces-C++ runtime and calls the parsing
+ and serialization tests described above.
+
+To run the example on a test XML document simply execute:
+
+$ ./driver test-50k.xml
+
+The -v option can be used to turn on validation in the underlying XML
+parser (off by default). The -i option can be used to specify the
+number of parsing and serialization iterations (1000 by default). For
+example:
+
+$ ./driver -v -i 100 test-50k.xml
+
+To generate the test document execute, for example:
+
+$ ./gen 633 test-100k.xml