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/06/03 17:30:53 UTC

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

Message:

   The following issue has been closed.

   Resolver: Davanum Srinivas
       Date: Thu, 3 Jun 2004 8:28 AM

David,

Checked in the patch. Please cross check. Would love get help to tune the default params.

thanks,
dims
---------------------------------------------------------------------
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: Closed
   Priority: Major
 Resolution: FIXED

    Project: Axis
 Components: 
             Basic Architecture
   Fix Fors:
             current (nightly)
   Versions:
             1.2 Beta

   Assignee: 
   Reporter: David Lucas

    Created: Thu, 27 May 2004 5:39 AM
    Updated: Thu, 3 Jun 2004 8:28 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