I've been doing some simple experiements that compare AXIS,
Apache SOAP, and other implementations (SoapRMI).

One test requests a single string (size 200, 400, and 800), and
another an array of integers (array size 200, 400, and 800).
There's no argument to the functions (not an echo test),
because most real-world web-apps will send small requests
most of the time.  All tests are performed on the same host to discount
network delays.  I use all default serializers/deserializers and
SOAP encoding.  The strings and arrays are pre-built on the server.
Note this doesn't measure the throughput of the server,
just the latency when the server is idle.  There's a warming
period for class loading and stuff.

I expected  to see that Axis has lower latency than
Apache due to use of SAX, but I don't see that.  Axis is
actually slower.


                getInt(200)     getInt(400)     getInt(800)

SoapRMI         22.2 ms         24.4 ms         31.5 ms
Apache SOAP     65.8 ms         117.3 ms        190.7 ms
Apache Axis     79.7 ms         157.4 ms        238.8 ms

                getStr(200)     getStr(400)     getStr(800)

SoapRMI         19.3 ms         19.6 ms         19.9 ms
Apache SOAP     22.7 ms         24.2 ms         25.1 ms
Apache Axis     20.9 ms         19.6 ms         20.6 ms

I'm using all default serializers, deserializers.  The strings
and arrays are pre-built and initialized on the server.  SOAP
encoding.

Do you have any suggestions for speeding up Axis with
the current code-base?

This is for an article that I'll post here once complete.

Reply via email to