Thanks for the work.

I don't have much time today to look at your changes.

A couple of questions:
  1) Do your changes work with multi-ref'd data (i.e. instead of a map of
strings, a map of multi-ref'd structs)
  2) Do you know why the functional test died?  Could you temporarily
comment out that test and see if other ones die.

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












#### BodyBuilder.java has been removed from this note on February 15 2002
by R J Scheuerle Jr
#### MessageElement.java has been removed from this note on February 15
2002 by R J Scheuerle Jr
#### RPCHandler.java has been removed from this note on February 15 2002 by
R J Scheuerle Jr
#### SOAPHandler.java has been removed from this note on February 15 2002
by R J Scheuerle Jr
#### DeserializationContext.java has been removed from this note on
February 15 2002 by R J Scheuerle Jr
#### DeserializationContextImpl.java has been removed from this note on
February 15 2002 by R J Scheuerle Jr
#### DeserializerImpl.java has been removed from this note on February 15
2002 by R J Scheuerle Jr
#### SerializationContextImpl.java has been removed from this note on
February 15 2002 by R J Scheuerle Jr
#### MessageContext.java has been removed from this note on February 15
2002 by R J Scheuerle Jr


Reply via email to