sorry, a sentence in the second paragraph of my original mail was wrong.
Please replace

"six times as long as serializing 1000 objects containing a single such list"

with 

"six times as long as serializing a single object containing such a list"

I apologize for the mistake.
-- Sebastian

> -----Original Message-----
> From: Millies, Sebastian [mailto:[email protected]]
> Sent: Wednesday, November 10, 2010 9:17 AM
> To: [email protected]
> Subject: Serialization of List<DataObject> inefficient
> 
> Hello there,
> 
> [note: this message has two Jpg-images attached]
> 
> I am asking for background about why the serialization of SDO-lists is
> so inefficient in Tuscany 1.6. To be precise, I have noticed that
> inter-jvm communication between SCA components happens a lot faster
> when I do not pass List<DataObject>, but instead wrap the list in an
> additional SDO with the list as its only attribute.
> 
> The difference is marked, e.g. serializing a list of 1000 objects 200
> times takes about six times as long as serializing 1000 objects
> containing a single such list 200 times:
> 
> testListOfSDO LSIZE:1000 duration D[3626ms] numRuns[200]
> testSDOResultObject LSIZE:1000 duration  D[634ms] numRuns[200]
> 
> For simplicity of calculation, I repeated the experiment with a list of
> 100 objects and just
> 1 run, and looked at the performance statistics using Eclipse TPTP. One
> notices that
> writeExternal() gets called twice for each list element in the first
> case, with some
> readResolve() calls thrown in for good measure, while it gets called
> only once per run in the second case:
> 
> Case 1:  clip_image001.jpg
> Case 2:  clip_image002.jpg
> 
> 
> Would it make sense to try and improve SDO by having it wrap
> List<DataObject> internally before sending it off to another process?
> 
> -- Sebastian

<<attachment: clip_image001.jpg>>

<<attachment: clip_image002.jpg>>

Reply via email to