[Mono-dev] Serialization performance + remoting

pablosantosluac pablosantosluac at terra.es
Fri Aug 3 07:32:00 EDT 2007


Hi again,

I've just run some tests comparing mono to .net. It is exaclty the same code 
compiled with .NET but run with .NET and mono. The test case is a server 
(actually the plastic server) with the data cached and a client. So only 
serialization/deserialization play the game, no other processing is 
required. The data is about 2Mb. The test is run on a 1.5GHz Pentium M 
laptop with 1.5GB Ram.

The time is average time after 10 runs.

mono server + mono client -> 630ms
mono server + .net client -> 721 ms
.net server + .net client -> 1150 ms
.net server + mono client -> 980 ms

So it looks like mono serialization is much faster.

I'm afraid the rest of the code is a bit slower running with Mono than .NET 
on my small test case (not the one I showed but another one not caching 
data). One question: is it recommended to compile with Mono to get better 
perfomance? I guess the answer but I just want to be sure.

Thanks!

pablo




----- Original Message ----- 
From: "pablosantosluac" <pablosantosluac at terra.es>
To: <mono-devel-list at lists.ximian.com>; "Robert Jordan" <robertj at gmx.net>
Sent: Friday, August 03, 2007 12:52 PM
Subject: Re: [Mono-dev] Serialization performance + remoting


> Thanks Robert.
>
> So, you mean it is better to pass an array of objects than actually a 
> list??
> Ok, I was already using arrays but I'll take it into account...
>
> pablo
> ----- Original Message ----- 
> From: "Robert Jordan" <robertj at gmx.net>
> To: <mono-devel-list at lists.ximian.com>
> Sent: Friday, August 03, 2007 10:52 AM
> Subject: Re: [Mono-dev] Serialization performance + remoting
>
>
>> Hi Pablo,
>>
>> pablosantosluac wrote:
>>> Because the people who actually implemented both serialization and
>>> remoting
>>> are in this list :-) I'd like to ask them to share with us some tips to
>>> improve performance in serialization/remoting: I don't know, maybe 
>>> always
>>> reduce the number of objects involved (unwrap the structures into
>>> communication specific ones), get rid of some methods, avoid some data
>>> types... whatever...
>>
>> Employing a remoting facade is the way to go, IMHO, even if it's
>> not that hype. Try to keep the data exchange classes as flat as possible
>> (struct-like, avoid lists [replace them with typed arrays], etc.).
>>
>> Robert
>>
>> _______________________________________________
>> Mono-devel-list mailing list
>> Mono-devel-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list 




More information about the Mono-devel-list mailing list