blob: cb79cc2a565e038f0b5c07cc18e0906b61248cee (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
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
|