You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@tuscany.apache.org by "Millies, Sebastian" <Se...@ids-scheer.com> on 2010/11/10 09:16:37 UTC

Serialization of List 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