summaryrefslogtreecommitdiff
path: root/examples/cxx/parser/performance/README
blob: d8d27a71fde3b276ad8d606efa40d973d23522f4 (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
This example measures the performance of XML parsing in the C++/Parser
mapping. It also shows how to structure your code to achieve the maximum
performance for this operation.

The example consists of the following files:

test.xsd
  XML Schema which describes the test vocabulary.

test-5k.xml
test-50k.xml
test-500k.xml
  Test XML documents of various sizes.

gen.cxx
  Program to generate a test document of desired size.

time.hxx
time.cxx
  Class definition that represents time.

test-pskel.hxx
test-pskel.ixx
test-pskel.cxx
  Parser skeletons generated by the XSD compiler from test.xsd.

driver.cxx
  Driver for the example. It first parses the command line arguments
  and reads the entire document into a memory buffer. It then creates
  a SAX parser and pre-parses and caches the schema if validation is
  enabled (Xerces-C++ only). Finally, it runs the performance
  measurement loop which on each iteration parses the XML document
  from the in-memory buffer.

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 (only makes sense for Xerces-C++, off by default). The -i option
can be used to specify the number of parsing iterations (1000 by default).
For example:

$ ./driver -v -i 100 test-500k.xml