• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..20-Jan-2020-

XSD/H20-Jan-2020-164124

01_expat.tH A D20-Aug-20145.9 KiB178152

MEMORY_FOOTPRINTH A D20-Aug-20143.2 KiB6054

READMEH A D20-Aug-20142.9 KiB7860

hello.plH A D20-Aug-20142.4 KiB9471

person.plH A D20-Aug-20146 KiB184134

person.xmlH A D20-Aug-201412.5 KiB438437

person_profile.plH A D20-Aug-2014589 2014

person_single.plH A D20-Aug-201411.2 KiB5139

README

1The benchmark directory includes a bunch of benchmarks. The most notable
2ones are listed below.
3
4Comparison benchmarks for SOAP::Lite, SOAP::WSDL, SOAP::WSDL_XS, and
5XML::Compile::WSDP need all of these installed for the benchmark to
6work (building and adding to the lib path suffices). All comparison benchmarks
7only account for the client part of the respective modules - the server part
8is not benchmarked.
9
10SOAP::WSDL_XS can be obtained from the project's subversion repository at
11
12https://soap-wsdl.svn.sourceforge.net/svnroot/SOAP-WSDL/SOAP-WSDL_XS/trunk
13
14Some benchmarks expect to find the SOAP servers "cgi-bin/person.pl" and
15"cgi-bin/hello.pl" from the examples directory at
16http://localhost:81/soap-wsdl-test/person.pl and
17http://localhost:81/soap-wsdl-test/hello.pl
18
19If the web services are not set up properly, you're benchmarking error
20creation times.
21
22To set up a SOAP server using apache, add the following to your apache config:
23
24 # usually in main config
25 Listen 127.0.0.1:81
26
27 # maybe in a
28 #<VirtualHost 127.0.0.1:81> container
29 #
30 ScriptAlias /soap-wsdl-test/ /PATH_TO/SOAP-WSDL/example/cgi-bin/
31 <Directory "/PATH_TO/SOAP-WSDL/example/cgi-bin">
32    AllowOverride None
33    Order allow,deny
34    Allow from all
35 </Directory>
36
37Using mod_perl is highly recommended to cut down benchmarking time.
38
39COMPARISON BENCHMARKS
40=====================
41
4201_expat.t
43----------
44Benchmarks XML parsing speed between XML::Simple with XML::Parser as backend,
45SOAP::Lite, SOAP::WSDL outputting objects, SOAP::WSDL outputting hash refs,
46XML::LibXML with a simple DOM walker outputting hash refs, XML::LibXML
47outputting the DOM and SOAP::WSDL_XS.
48
49No web server required.
50
51This benchmark sheds light on how much performance is - in theory - reachable
52by each approach: The XML::LibXML (Hash) benchmark converts the DOM into
53a nested hash using a recursive function. This is - basically - how
54XML::Compile works. XML::Simple uses XML::Parser's streaming
55API. SOAP::WSDL uses XML::Parser::Expat, XML::Parser's low-level backend,
56to create objects or - in the (Hash) variant - nested hashes similar to
57those created by XML::Simple.
58SOAP::WSDL_XS uses a libexpat-based XS parser to create perl objects, and
59XML::LibXML (DOM) creates a C level libxml2 DOM accessible from perl.
60
61person.pl:
62----------
63Sends a empty requests and receives a response of ca. 10kB.
64Modeled after a common enterprise setup: "Give me a list of person data sets".
65
66For this benchmark, XML parsing speed is important. XML generation speed is
67only weighted in the last two runs, and weights around 1/10 of parsing speed.
68
69hello.pl:
70---------
71Sends a request containing name and given name and politely replies
72"Hello <given name> <name>".
73An example for very short requests and responses.
74
75For this example, handling and generating small requests/responses, and
76transport speed is important. As the XML transmitted is relatively small, the
77transport layer's overhead is important.
78