[Mono-dev] Remoting performance between two appdomains( plugins) in same process/application

Shawn Schaerer shawn at cogmation.com
Wed Dec 19 11:29:27 EST 2007


Hi,

Thanks for the information.


I assume that the CrossAppDomainChannel is setup automatically and  
there is nothing to do to set it up ?

When we pass objects between domains it is faster to pass primitive  
types instead of objects that hold primitives ( image class that  
holds image data in a byte array) ?  If so, is it a big speed up ?


Thanks for your time and answers.

Shawn


On 19-Dec-07, at 9:47 AM, Lluis Sanchez wrote:

> El dc 19 de 12 del 2007 a les 09:03 -0600, en/na Shawn Schaerer va
> escriure:
>> Hi,
>>
>>
>> I have a question on the performance of remoting between two
>> appdomains running in the same process.
>>
>>
>> We have developed a dynamic dll loading program (plugins) using
>> appdomains and assemblies and need to pass a lot of data between the
>> two plugins.  We are passing image data between the two
>> plugins.  The size of the data is around 250K Bytes and the transfer
>> happens 15-30 times a second.
>>
>>
>> Question:
>>
>>
>> Is remoting optimized when the appdomains are created in the same
>> process / application ? ( We are passing the objects using
>> MarshalByRefObject)
>
> Yes. The cross-app domain channel can send information to the target
> domain by just copying memory. That's faster than any other IPC  
> method.
> Also, if the remote methods you call use only primitive types or  
> arrays
> of primitive types, the cross-app domain channel can avoid the
> serialization of parameters and can make a direct copy of data,  
> which is
> much faster.
>
>>
>>
>> Are the transfers the same as accessing shared memory or is the data
>> still accessed via proxies ?
>
> Data is still accessed via proxies, because it is not possible to  
> share
> managed objects between domains. If you send a MarshalByRef object
> you'll get a proxy to the object in the source domain. If you send a
> byte array of 250Kb, the target domain will get a copy of that array.
>
>>
>>
>> Is there a big performance hit doing this in Mono ? Is there a better
>> solution ?
>
> A solution for what? for sending information between appdomains? I  
> don't
> think there isn't a better solution than remoting.
>
> Lluis.
>
>
>

Shawn Schaerer
Director of Research and Development
Cogmation Robotics Inc
www.cogmation.com




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20071219/711906b1/attachment.html 


More information about the Mono-devel-list mailing list