[Mono-devel-list] Mono performance problem

Namit Dhameja ndhameja at panaceasoftware.com
Mon Feb 23 13:28:50 EST 2004


Hi Paolo,
      Thank you for your feedback. It was really quite detailed, much more
than the profile page on the mono site :-).
    I did put the wrong unit about the time taken. It's
      MS.NET ~ 2-3s
      MONO (0.3 on Suse 9.0) ~ 10-12s
      MINT (0.3 on Suse 9.0) ~ 40s
With all this information that you have provided, I will try to identify the
bottlenecks and hopefully come back with a more detailed report.
Thanks again.
-Best Reagrds,
Namit.

----- Original Message ----- 
From: "Paolo Molaro" <lupus at ximian.com>
To: <mono-devel-list at lists.ximian.com>
Sent: Saturday, February 21, 2004 8:31 AM
Subject: Re: [Mono-devel-list] Mono performance problem


> On 02/20/04 Namit Dhameja wrote:
> > We recently ported our server code to Linux (Mono) from Windows
> > (MS.Net). The problem is that there is a huge performance hit. A
> > particular transcation on MS.Net takes ~2sec, on Mono the same takes
> > around ~10-12ms.
>
> Wow, mono is 200 times faster? :-)
> Anyway: there are still many areas of mono that have not yet been
> optimized, we appreciate reports about particular workloads in which we
> are significantly slower than the MS runtime. Please tell us aolaso
> which version of Mono you're using.
>
> > To find out the reason I ran Mono with '--profile' option and got
> > a 510KB file. If you know of any software (UI)  which would take this
> > file and give me some sort of easily digestable information that would
> > be really appreciated.
>
> Sadly there is no GUI yet to look at the profiling data: we hope to
> provide one for our 1.0 release, but nobody volunteered yet:-)
> At the top of the file you'll find the list of methods where most of the
> time has been spent. It looks like this:
>
> Time(ms) Count   P/call(ms) Method name
> ########################
>  47863.442       1  47863.442   .T::Main(object,intptr,intptr)
>   Callers (with count) that contribute at least for 1%:
> ########################
>  47861.575       1  47861.575   .T::Main()
>   Callers (with count) that contribute at least for 1%:
>            1  100 % .T::Main(object,intptr,intptr)
> ########################
>  26721.975       1  26721.975   .T::use_activator()
>   Callers (with count) that contribute at least for 1%:
>            1  100 % .T::Main()
> ########################
>  26245.512 1000000    0.026   System.Activator::CreateInstance(Type)
>   Callers (with count) that contribute at least for 1%:
>      1000000  100 % .T::use_activator()
> ########################
>  25663.816 1000000    0.026
> System.Activator::CreateInstance(Type,bool)
>   Callers (with count) that contribute at least for 1%:
>      1000000  100 % System.Activator::CreateInstance(Type)
> ########################
>  22373.921 2000000    0.011
> System.Reflection.ConstructorInfo::Invoke(object[])
>   Callers (with count) that contribute at least for 1%:
>      1000000  50 % System.Activator::CreateInstance(Type,bool)
>      1000000  50 % .T::use_ctor()
>
> For each method you get how many milliseconds were spent in all the
> invocations of that method, how many times it was called and the mean
> invocation time for call. You also get a list of the callers with a
> count of how many times each caller called the method.
> In this example, ConstructorInfo::Invoke(object[]) was called 2000000
> times, 1000000 from the T::use_ctor() method and 1000000 from the
> Activator::CreateInstance(Type,bool) method.
> We can also see that roughly half of the time in the benchmark run as
> spent inside ConstructorInfo::Invoke(object[]) (22 seconds out of 48
> seconds): this means that method probably needs some speedups in mono...
>
> So, given the above info, you can try to look at the data and report
> where most of time is spent. Or you can send me the file in private
> email and I'll try to sumamrize it and see if there are obvious spots in
> mono that need improvement.
> If you can distribute the source of your app we can try and run with
> profiling ourself, otherwise, please provide us the data from the
> profiler or, given the data, send us possibly small programs that
> execute the same kind of code, so we can try and optimize their
> execution.
> Thanks!
>
> lupus
>
> -- 
> -----------------------------------------------------------------
> lupus at debian.org                                     debian/rules
> lupus at ximian.com                             Monkeys do it better
> _______________________________________________
> 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