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