Ok sure. I will look into some pooling.
What about the regular [PATCH] I submitted on serialization of
MessageElement's children, setting/getting its type.

RE: [PATCH] message.MessageElement get/setValue() and child serialization.
(the reply has updated diff)
[PATCH] encoding.SerializationContextImpl getSerializerForJavaType() always
returned null

Thanks,
-Taras

> -----Original Message-----
> From: R J Scheuerle Jr [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, February 21, 2002 11:27 AM
> To: [EMAIL PROTECTED]
> Subject: Re: Experiments on type serialization. (feedback 
> very welcome)
> 
> 
> Rich Scheuerle
> XML & Web Services Development
> 512-838-5115  (IBM TL 678-5115)
> ----- Forwarded by R J Scheuerle Jr/Austin/IBM on 02/21/2002 
> 01:26 PM -----
> 
> 
>                                                               
>                                                               
>                       R J Scheuerle Jr                        
>                                                               
>                                                To:      
> [EMAIL PROTECTED]                                             
>                       02/21/2002 11:08         cc:      
> "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>               
>                       AM                       From:    R J 
> Scheuerle Jr/Austin/IBM@IBMUS                                   
>                                                Subject: Re: 
> Experiments on type serialization. (feedback very welcome)      
>                                                               
>                                                               
>                                                               
>                                                               
>                                                               
>                                                               
>                                                               
>                                                               
>                                                               
>                                                               
>                                                               
>                                                               
> 
> 
> 
> Taras,
> 
> I looked at the code and I am not sure that this an 
> appropriate time to
> make "performance optimization" changes.
> I agree that Axis could be improved, but moving the 
> deserialization type
> determination into BodyBuilder seems
> to break some well defined logical boundaries.  (Plus as you 
> pointed out,
> some of the tests fail when your changes
> are enabled.)
> 
> Perhaps someone (not me) who is more knowledgeable of the SOAPElement
> construction could address your
> concerns about the large number of temporary objects 
> constructed by Axis.
> Perhaps some of these objects could be
> pooled.
> 
> If you would like to examine the ramifications of pooling some of the
> objects versus moving logical function, that would
> be a great help to the group.
> 
> Thanks,
> 
> Rich Scheuerle
> XML & Web Services Development
> 512-838-5115  (IBM TL 678-5115)
> 
> 
>                                                               
>                                                               
>                       Taras Shkvarchuk                        
>                                                               
>                       <tarass@grandcent        To:       
> "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>              
>                       ral.com>                 cc:            
>                                                               
>                                                Subject:  
> Experiments on type serialization. (feedback very welcome)         
>                       02/15/2002 07:32                        
>                                                               
>                       AM                                      
>                                                               
>                       Please respond to                       
>                                                               
>                       axis-dev                                
>                                                               
>                                                               
>                                                               
>                                                               
>                                                               
> 
> 
> 
> Right now AXIS is always building a DOM like structure from 
> MessageElement
> object. On top of that all SAX events are recorded for type
> deserialization.
> This leads to one memory hungry application.
> 
> I was running some tests to serialize a Map of Strings (using my own
> deserializer for testing purposes).
> On a 6MB XML sample with 55618 map nodes, AXIS took 67.66MB 
> of ram, and ran
> for 8.7sec on a PIII-850.
> On a 1MB body with 10618 nodes, AXIS took 13.6MB, and ran for 2.3 sec.
> This is raw parser time not including transport, etc... whole 
> transaction
> is
> attached at the end of the message.
> 
> What I was playing with was direct serialization into types, and also
> ability to turn off SAX recording.
> With my patches I was able to serialize 6MB message using 
> only 10.0MB in
> 5.52sec
> And with SAX recoding 31.5MB was used in 6.65 sec.
> 
> There maybe not such a dramatic speed improvement, but memory 
> utilization
> is
> much better. Java's garbage collector will be happy :)
> 
> My changes passed functional tests partially (dies on the one with
> phasers).
> So there is some more debugging for me to do, but the idea seems to be
> functional.
> you can control it from MessageContext by calling:
> msgContext.setResolveTypes(true);
> msgContext.setRecordingEvents(false);
> 
> I will attach the complete source of the changes files, if 
> anyone feels
> like
> looking at what ever part of it is working.
> 
> Bellow is a breakdown of 2 tests.
> in this tests there was 1 text/plain attachment with contents of
> "ATTACHMENT
> DATA"
> Data was not read out of them, just counted number of 
> attachments present.
> 
> ****************************************************
> 6MB original:
> [PERFLOG] START - used 0.0 KB in 0.0 sec
> [PERFLOG] Req Ready - used 713.1328125 KB in 1.432 sec
> [PERFLOG] Invoked - used 21.133033752441406 MB in 2.414 sec
> Attchment count:1
> [PERFLOG] AttachExtracted - used 0.9609375 KB in 0.0 sec
> ResolveTypes:false
> Record Events:true
> [PERFLOG] Extracted ENV - used 38.475128173828125 MB in 5.157 sec
> [PERFLOG] Have Node - used 0.8359375 KB in 0.0 sec
> Total elements in list:55618
> [PERFLOG] Finished - used 29.194740295410156 MB in 3.565 sec
> [PERFLOG] TOTAL - used 89.50175476074219 MB in 12.568 sec
> 
> ****************************************************
> 1MB original:
> [PERFLOG] START - used 0.0 KB in 0.0 sec
> [PERFLOG] Req Ready - used 1.3937301635742188 MB in 1.432 sec
> [PERFLOG] Invoked - used 673.7265625 KB in 3.405 sec
> Attchment count:1
> [PERFLOG] AttachExtracted - used 0.8828125 KB in 0.0 sec
> ResolveTypes:false
> Record Events:true
> [PERFLOG] Extracted ENV - used 6.904670715332031 MB in 1.573 sec
> I am of type:null
> [PERFLOG] Have Node - used 0.828125 KB in 0.0 sec
> Total elements in list:10618
> [PERFLOG] Finished - used 6.6721954345703125 MB in 0.771 sec
> [PERFLOG] TOTAL - used 15.630882263183594 MB in 7.181 sec
> 
> 
> ****************************************************
> 6MB direct serialization w/o SAX recoding:
> [PERFLOG] START - used 0.0 KB in 0.0 sec
> [PERFLOG] Req Ready - used 713.1328125 KB in 1.402 sec
> [PERFLOG] Invoked - used 21.133033752441406 MB in 2.374 sec
> Attchment count:1
> [PERFLOG] AttachExtracted - used 0.9609375 KB in 0.0 sec
> ResolveTypes:true
> Record Events:false
> [PERFLOG] Extracted ENV - used 10.00848388671875 MB in 5.528 sec
> [PERFLOG] Have Node - used 0.828125 KB in 0.0 sec
> Total elements in list:55618
> [PERFLOG] Finished - used 0.796875 KB in 0.0 sec
> [PERFLOG] TOTAL - used 31.84105682373047 MB in 9.384 sec
> 
> 
> ****************************************************
> 6MB direct serialization with SAX recoding:
> 
> [PERFLOG] START - used 0.0 KB in 0.0 sec
> [PERFLOG] Req Ready - used 713.1328125 KB in 1.582 sec
> [PERFLOG] Invoked - used 21.133033752441406 MB in 2.403 sec
> Attchment count:1
> [PERFLOG] AttachExtracted - used 0.9609375 KB in 0.0 sec
> ResolveTypes:true
> Record Events:true
> [PERFLOG] Extracted ENV - used 31.537750244140625 MB in 6.65 sec
> [PERFLOG] Have Node - used 0.8359375 KB in 0.0 sec
> Total elements in list:55618
> [PERFLOG] Finished - used 0.796875 KB in 0.0 sec
> [PERFLOG] TOTAL - used 53.370330810546875 MB in 10.705 sec
> 
> 
> 
> 
> **** Attachment BodyBuilder.java has been removed from this note on 21
>          February 2002 by R J Scheuerle Jr ****; **** Attachment
>          MessageElement.java has been removed from this note 
> on 21 February
>          2002 by R J Scheuerle Jr ****; **** Attachment 
> RPCHandler.java has
>          been removed from this note on 21 February 2002 by R 
> J Scheuerle
>          Jr ****; **** Attachment SOAPHandler.java has been 
> removed from
>          this note on 21 February 2002 by R J Scheuerle Jr ****; ****
>          Attachment DeserializationContext.java has been 
> removed from this
>          note on 21 February 2002 by R J Scheuerle Jr ****; 
> **** Attachment
>          DeserializationContextImpl.java has been removed 
> from this note on
>          21 February 2002 by R J Scheuerle Jr ****; **** Attachment
>          DeserializerImpl.java has been removed from this note on 21
>          February 2002 by R J Scheuerle Jr ****; **** Attachment
>          SerializationContextImpl.java has been removed from 
> this note on
>          21 February 2002 by R J Scheuerle Jr ****; **** Attachment
>          MessageContext.java has been removed from this note 
> on 21 February
>          2002 by R J Scheuerle Jr ****
> 

Reply via email to