[Mono-dev] how to improve mono performance

Ben Maurer bmaurer at ximian.com
Thu Nov 17 01:56:51 EST 2005


On Wed, 2005-11-16 at 20:30 -0800, zhu shi song wrote:
> I've got one test example and tested it using linux
> mono and windows .NET on the same machine.  The
> results showed that the performance of linux mono is
> much bad than windows .NET. 
> Linux Mono:
>  ArrayList strings test.............3311 ms
>  StringBuilder test.................4008 ms
>  Integer & Floating ADD.............15145 ms
>  Exception test.....................621 ms
>  Reflection and recursion...........9421 ms
> Windows .Net:
>  ArrayList strings test.............1109 ms
>  StringBuilder test.................1437 ms
>  Integer & Floating ADD.............2734 ms
>  Exception test.....................4046 ms
>  Reflection and recursion...........5843 ms
> Machine configuration:
>  RAM: 512M DDR
>  CPU: Intel C4 2.0G
> OS:
>  Windows 2003 Server .NET 1.1 Framework
>  Fedora Core 4 with mono compiled from svn
> 
> Now I try to port my aspx web application to linux
> mono from windows 2003 .net framework.  But regarding
> of performance, I wonder whether it is deserved.
>   Maybe I lack some tips to improve linux mono
> performance.  If someone knows pls help me.


Chances are, your web application does not add items to an array, create
stringbuilders, add integers, throw exceptions and do reflection
anything like the tests you have configured. I would suggest
benchmarking a ported application rather than these micro measurements.
If you want to do such measurements, I would recommend something more
relevant to your application (database accesses? the asp.net pipeline?)

That being said, some possible reasons for slowness:

ArrayList/StringBuilder:
	Likely the GC.

Floating Point:
	I think msft may be taking advantage of some special hardware stuff. I
highly doubt this is relevant to your application.

Exceptions:
	We super optimized this path :-)

Reflection:
	Not sure, might be worth looking at

-- Ben




More information about the Mono-devel-list mailing list