You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by bu...@apache.org on 2003/10/29 16:49:15 UTC

DO NOT REPLY [Bug 24214] - Axis performance reading socket input stream

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24214>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24214

Axis performance reading socket input stream





------- Additional Comments From a.fernandez.martinez@ibermatica.com  2003-10-29 15:49 -------
Contrary to my initial report, changing the mentioned code does not solve the
problem. It seems that Axis is converting the org.apache.axis.SOAPPart contents
back and forth between the different forms (bytes, string, envelope) several times.

The solution is to refactor it into org.apache.axis.IncomingSOAPPart,
org.apache.axis.OutgoingSOAPPart and org.apache.axis.FaultSOAPPart; and make
org.apache.axis.Message instantiate the proper subclass of the abstract
org.apache.axis.SOAPPart. I have done it locally (in fact, that's what solved
the performance problem); however, it is outside my resources to make a patch
like that, that involves more than 20 files. If anyone is interested, I can mail
him or her my sources and let them take care of it.

Anyway, the performance gain is very real. This is before the refactoring:
result: Apache Axis version: 1.2dev
Built on oct 29, 2003 (03:16:45 CET)
10 requests took 2964milliseconds
3,4 requests per second

And this is after:
result: Apache Axis version: 1.2dev
Built on oct 29, 2003 (03:16:45 CET)
10 requests took 400milliseconds
25,0 requests per second

I am attaching the test class I have used. (It is not a JUnit test case, since
the servlet container must be running for it to work.) Usage:
test.loadtest.SimpleLoadTester wsdl [requests]