bzr branch
http://darksoft.org/webbzr/xmlbench/trunk
1
by Suren A. Chilingaryan
Initial import |
1 |
Overview
|
2 |
--------
|
|
3 |
This package provides basic benchmarks for main C/C++ multiplatform |
|
4 |
parsers. Some of Java parsers also included for comparision. |
|
5 |
||
6 |
This version supports following benchmarks: |
|
7 |
Parsing: SAX & DOM |
|
8 |
Validating: XML Schema |
|
9 |
DOM: Creating DOM tree, Serialization |
|
10 |
Security: XML Signature, XML Encryption |
|
11 |
XSL Transformation |
|
12 |
||
13 |
Following XML sources supported: |
|
14 |
Any well-formed XML file ( XML, XSL, XSD ) |
|
15 |
Automatic generation of random simple XML file |
|
16 |
Automatic generation of random XML OPC-DA message sequence |
|
17 |
||
18 |
Following parsers supported: |
|
19 |
libxml2 + libgdome + libxslt + xmlsec |
|
20 |
xerces + xalan |
|
21 |
expat + sablotron + cslxml + arabica |
|
22 |
RXP parser |
|
23 |
Oracle XDK for C, C++, Java |
|
24 |
IBM xml4c + Lotus XML (not supported) |
|
25 |
Sun XML Pack + Apache XML Security |
|
26 |
||
2
by Suren A. Chilingaryan
Intel, Tango, Phobos, and RapidXML parsers; Memory benchmark scripts |
27 |
Environment Variables
|
28 |
---------------------
|
|
29 |
allow_deferring - Allows partial DOM construction in parsing tests, |
|
30 |
see "Lazy DOM node expansion" in apache documentation: |
|
31 |
http://xerces.apache.org/xerces-j/features.html |
|
3
by Suren A. Chilingaryan
Parsing tests for mono, vtd-xml, lisp, scripting languages |
32 |
allow_preprocessing - Allows preprocessing of XML text to construct |
33 |
intermediate representation (normally index) which |
|
34 |
can be used for parsing |
|
35 |
walk_tree - For comparison of optimizing parsers which do not |
|
36 |
perform full DOM construction, this will force to |
|
37 |
access all elements and attributes and estimate |
|
38 |
complete speed. |
|
9
by Suren A. Chilingaryan
Implement DOM walking mode for parsing benchmark in fast parsers |
39 |
skip_xml - Skip all XML code, used to measure memory used |
40 |
by XML-specific code |
|
41 |
fast_mode - By default parsers try to set standard parsing |
|
42 |
mode to support all cases, however, in this mode |
|
43 |
various optimizations are enabled (no string |
|
44 |
termination, no well-formness check, etc.) |
|
2
by Suren A. Chilingaryan
Intel, Tango, Phobos, and RapidXML parsers; Memory benchmark scripts |
45 |
|
46 |
memory_bench - Optimize tests for memory benchmarks |
|
47 |
skip_xml - Do not perform actual xml parsing or construction |
|
48 |
skip_xsl - Do not perform actual transformation |
|
49 |
skip_validate - Do not perform actual document validation |
|
50 |
skup_security - Skip encryption and signature related action |
|
51 |
||
1
by Suren A. Chilingaryan
Initial import |
52 |
|
53 |
Requirements |
|
54 |
------------ |
|
55 |
Libxml2 ( tested 2.4.30, 2.5.9, 2.5.11, 2.6.3, 2.6.5 ) |
|
56 |
Libxslt ( tested 1.0.24 - 1.0.33, 1.1.2 ) |
|
57 |
libgdome ( tested 0.7.2 - 0.7.4, 0.8.1 ) |
|
58 |
xmlsec + patch ( tested 0.0.12 - 0.0.15, 1.0.2, 1.1.2, 1.2.4 ) |
|
59 |
OpenSSL > 0.9.7 |
|
60 |
xerces for C ( tested 2.1.0, 2.2.0, 2.3.0, 2.4.0 ) |
|
61 |
xalan for C ( tested 1.4.0, 1.5.0, 1.6.0, 1.7.0 ) |
|
62 |
IBM XML for C ( tested 5.0.0, 5.2.0 ) |
|
63 |
RXP Parser ( tested 1.2.8 ) |
|
64 |
expat ( tested 1.95.5, 1.95.6 ) |
|
65 |
arabica ( tested sept02, jan04 ) |
|
66 |
cslxml ( tested 020103, 020107 ) |
|
67 |
sablotron ( tested 0.97.0, 1.0.1 ) |
|
68 |
Oracle XDK for C ( tested 9.0.1.0.0, 9.2.0.6.0 ) |
|
69 |
Oracle XDK for C++ ( tested 9.0.1.0.0, 9.2.0.6.0 ) |
|
70 |
Oracle XDK for Java ( tested 9.2.0.4.0, 9.2.0.6.0 ) |
|
71 |
Sun J2SE 1.4.1 + XML Pack Summer or Java WebServices Developer Pack (JAXP >= 1.2) |
|
72 |
Apache XML Security ( tested 20020422, 1.0.0 ) |
|
73 |
Jakarta Log4J ( tested 1.2 ) |
|
74 |
||
75 |
||
76 |
Build
|
|
77 |
-----
|
|
78 |
1. Install all required libraries
|
|
79 |
2. Check options You want in Makefile.in
|
|
80 |
3. Rip off all benchmarks coresponded to unavailable libraries from Makefile.in
|
|
81 |
4. Update library paths in Makefile.in
|
|
82 |
5. Select compilers in Makefile.in
|
|
83 |
6. make
|
|
84 |
||
85 |
Oracle Notes
|
|
86 |
------------
|
|
87 |
To have part (not all, but maximum possible) user readable error messages |
|
88 |
following enviroment virables must be set |
|
89 |
||
90 |
ORA_NLS33=/usr/share/xdk/nlsdata |
|
91 |
ORA_XML_MESG=/usr/share/xdk/mesg |
|
92 |
||
93 |
Oracle XDK 9.0 have rather old XML Schema implementation and don't understand |
|
94 |
OPC Schema, other schemas also can be incompatible with it. |
|
95 |
||
96 |
Oracle XDK 9.2.0.6.0 have up-to-date XML Schema implementation but buggy. Can |
|
97 |
drop core on some non-valid documents. ( May be for some of valids also ) |
|
98 |
||
99 |
Sablotron Notes
|
|
100 |
---------------
|
|
101 |
All versions, I tested (0.96, 0.96.1, 0.97) failed to process long large |
|
102 |
<opcgen> generated documents. Fixed in 0.98. |
|
103 |
||
104 |
Gnime XML Library
|
|
105 |
-----------------
|
|
106 |
Gnome XML 2.6.5 library have problems with validation of xsd:QName attributes |
|
107 |
||
108 |
Gnome XML Security (prior to 1.2.0)
|
|
109 |
------------------
|
|
110 |
Gnome XML security library prior to 1.2.0 lacks support for reading public keys from X509 |
|
111 |
certificates. Because of that if you want to use xmlsec 1.1.x or earlier, you must |
|
112 |
rebuild xmlsec with coresponded patch available in 'patches/' directory. |
|
113 |
Versions 1.2.x don't need to be patched. |
|
114 |
||
115 |
Apache XML Security for C (from CVS tree)
|
|
116 |
-------------------------
|
|
117 |
Apache XML Security for C (CVS 07.02.2004) have problems in transcoding code, resulting in |
|
118 |
random segmenation faults. Please find temorary fix in 'patches/' directory. |