[Mono-dev] how to improve mono performance

zhu shi song zhushisongzhu at yahoo.com
Fri Nov 18 02:32:11 EST 2005


  I very agree with you. The right direction to
improve performance should be from :
        - class libraries
 	- compiler outputs
 	- JIT

  I don't think we put emphasis on apps.  Because we
have the same source, but the running results  are so
different using linux+mono and msft .net.
  I insist that performance is the key factor for key
applications.  For example, we now have one enterprise
web query application. Every day between 8:30AM and
12:00AM, it serve about 20000 requests.  Now we use
one P4 2.6G PC Server with 512M DDR running Windows
2003 Server, it works well.  If we port it to Linux +
Mono, we must upgrade the hardware to meet the same
workload. 


 tks 
  zhu
--- Atsushi Eno <atsushi at ximian.com> wrote:

> zhu shi song wrote:
> > (1) I feel a little disappointed at the comparsion
> > results.  I think we should not only prove we can
> do
> > this but we can do even better.  The performance
> fact
> > is very essential for production applications.  I
> hope
> > the mono community can improve performance of mono
> > largely. Then mono will be depoyed in many real
> apps. 
> > We have spent so much effort on it, we shouldn't
> let
> > it be reference implementation just for lab.
> 
> I agree that performance improvements are
> impressive, but
> against your expectation mono is already used in
> practice,
> including softwares and individual solutions:
> http://www.mono-project.com/Software
> http://www.osnews.com/story.php?news_id=10714
> 
> > (2) when I use msft's csc to compile compare.cs,
> then
> > I run under linux+mono.  I just got 10% faster
> than
> > that compiled by mono mcs. So maybe mono's jit is
> not
> > so good as msft's.
> 
> Wrong assumption. There are three factors in mono to
> affect
> on performance:
> 
> 	- class libraries
> 	- compiler outputs
> 	- JIT
> 
> The most effective optimizations could be done at
> class libraries
> (which could be usually done with a few lines of
> changes on a few
> critical paths), where many hot users among users
> turned into hackers
> and posting several patches here (and there).
> 
> Actual analysis and thoughts on which affects on
> performance
> are welcome (like what Ben wrote).
> 
> It would be awesome if you try mono --profile (or
> "heap-buddy"
> in our svn repository) to count individual
> performance, find
> out where the code is specially slow, and optimize
> the sources.
> 
> Even a line of change could result in more than 200%
> performance
> boost in some code areas (I often got such hits in
> DOM/XSLT areas).
> 
> Atsushi Eno
> 
> > 
> >   tks
> >   zhu
> > 
> > 
> > --- Ben Maurer <bmaurer at ximian.com> wrote:
> > 
> >> 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
> >>
> >>
> > 
> > 
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam?  Yahoo! Mail has the best spam
> protection around 
> > http://mail.yahoo.com 
> > _______________________________________________
> > Mono-devel-list mailing list
> > Mono-devel-list at lists.ximian.com
> >
>
http://lists.ximian.com/mailman/listinfo/mono-devel-list
> > 
> 
> 



		
__________________________________ 
Start your day with Yahoo! - Make it your home page! 
http://www.yahoo.com/r/hs



More information about the Mono-devel-list mailing list