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 ji...@apache.org on 2004/05/27 15:17:01 UTC

[jira] Commented: (AXIS-1371) ByteArray causes performance degradation

The following comment has been added to this issue:

     Author: Tom Jordahl
    Created: Thu, 27 May 2004 6:16 AM
       Body:
David,

Please attach a context diff patch to this bug report with your changes.  Make sure that you can run the 'all-tests' target in ant successfully.

Thanks!
---------------------------------------------------------------------
View this comment:
  http://issues.apache.org/jira/browse/AXIS-1371?page=comments#action_35745

---------------------------------------------------------------------
View the issue:
  http://issues.apache.org/jira/browse/AXIS-1371

Here is an overview of the issue:
---------------------------------------------------------------------
        Key: AXIS-1371
    Summary: ByteArray causes performance degradation
       Type: Bug

     Status: Unassigned
   Priority: Major

    Project: Axis
 Components: 
             Basic Architecture
   Versions:
             1.2 Beta

   Assignee: 
   Reporter: David Lucas

    Created: Thu, 27 May 2004 5:39 AM
    Updated: Thu, 27 May 2004 6:16 AM
Environment: Standard client and server messaging using SOAPParts

Description:
ByteArray has a mechanism in it to provide a "file" as a backing store for any arrays that are larger than 8KB.  In most cases, this is all of my responses.  We are passing images back as BASE64 and we see major performance hit.  After performaning a thread dump on poorly performing tests, we found that many threads were blocked in the Sun File.createTempFile method which has a global mutex that is serializing all of my SOAP responses.

Solution:  Change ByteArray to provide a larger amount of memory usage for RESIDENT SIZE (like 512MB compared to 8KB).  The RESIDENT SIZE is not preallocated, but used to determine when to turn on backing storage.  I also propose a change to allow control over RESIDENT SIZE, CACHE INCREMENT, ENABLE/DISABLE BACKING STORE, and a WORKING BUFFER SIZE for when the backing store is written or read via a stream.

In my internal tests, this change has seen a major improvement on performance.  And seeing that SOAPParts are used on the client side as well, this might have a dramatic increase performance.  My tests indicate at a minimum of 50% improvement.   I was able to double my test throughput after making this change.

I have a working ByteArray coded that includes my changes and I can send it if you want it.



---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.

If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa

If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira