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>>
