BACK TO MAIN PAGE
SOAP/XML Web Service Performance
gSOAP has a very low latency, with performance reaching over 3000 roundtrip
SOAP/XML messages per second!
performance versus the performance of Apache Axis 1.1 on various
platforms compiled by Martin Kuba.
The paper Toward
Characterizing the Performance of SOAP Toolkits in the
IEEE/ACM International Workshop on Grid Computing shows that gSOAP is the
fastest toolkit compared to .NET, Apache Axis Java and C++, and xSOAP.
Below are results obtained in previous studies.
Performance results of different HTTP transport choices and SOAP encodings of
a square integer matrix (N by N, where N is the rank) on PIII 550MHz Red Hat Linux
gSOAP (top/left) versus Java RMI (bottom/right) performance
See ICWS 2003 paper for more details.
Load stress test results (with previous gSOAP releases)
SAC 2004 paper on gSOAP's code generation techniques
emphasis on embedded systems (PDF)
ICWS 2004 paper on Finite State Automata for
High-Performance XML parsing (PDF).
Not-so-recent performance results can be found in
this independent research paper that presents an
investigation to the performance of SOAP for scientific computing. The authors implemented a special-purpose implementation for
processing arrays of doubles in SOAP/XML and compared the results to gSOAP. The results show that gSOAP's performance is
somewhat lower than the special-purpose implementation (but magnitude higher than Apache Axis). The reason for the lower
performance is that gSOAP is a full
implementation of SOAP and therefore performs more tasks
at run time to process a SOAP message compared to the special-purpose implementation. In addition, the study did not enable gSOAP's
keep-alive support which accounts for up to 25% of the performance difference. Other differences that explain the performance results are:
gSOAP's performance would be close to the reported performance in the paper by eliminating the above features. However, removing the features would result in an implementation that is not fully SOAP compliant.
- gSOAP traverses the entire data structure first to check for multi-referenced objects and cycles in the data graph. Hence,
every array element is visited at least twice and its memory address is checked to see if it is multi-referenced by another node.
- gSOAP uses XML namespaces and validates with namespaces.
- gSOAP uses a callback mechanism for I/O operations which adds flexibility but can impact performance slightly.
- The gSOAP messages studied in the paper contain xsi:type attributes for all array elements which increased the message size
(these attributes can be omitted).