Hello,

Basically I noticed some performance problems on mono. I have a unit test suite which requires some minutes to run on .net but several hours on mono.

Because this code is heavily using F# asyncs I tried to find existing bug reports of the problem.
I found the following entries:
http://lists.ximian.com/pipermail/mono-devel-list/2005-April/011477.html
http://lists.ximian.com/pipermail/mono-bugs/2010-May/100566.html
http://lists.ximian.com/pipermail/mono-devel-list/2010-January/033814.html
But they all don't seem to be directly related, because of this I decided to use the mono profiler and check the results.

I had problems with the self compiled mono profiler (libmono-profiler-log.so.0.0.0) I had to copy the file from the binary distribution (It seems like the build is broken somehow on mono master?). For reference: I got the mighty: "The 'log' profiler wasn't found in the main executable nor could it be loaded from 'mono-profiler-log'."

Afer running the profiler the top results are:
Method call summary
Total(ms) Self(ms)      Calls Method name
67733962 539203 229540 Microsoft.FSharp.Control.AsyncBuilderImpl/callA@815:Invoke (Microsoft.FSharp.Control.AsyncParams`1<b>) 49135479 197016 163464 Microsoft.FSharp.Control.AsyncBuilderImpl/resultA@781:Invoke (Microsoft.FSharp.Control.AsyncParams`1<a>) 48703438 33181 162414 Microsoft.FSharp.Control.AsyncBuilderImpl/args@799-1:Invoke (a) 42976340 42976339 5318 (wrapper managed-to-native) System.Threading.WaitHandle:WaitOne_internal (System.Threading.WaitHandle,intptr,int,bool) 42600383 368321 164611 Microsoft.FSharp.Control.AsyncBuilderImpl/bindA@793:Invoke (Microsoft.FSharp.Control.AsyncParams`1<b>) 37193074 1632 99251 (wrapper runtime-invoke) <Module>:runtime_invoke_void__this___object (object,intptr,intptr,intptr) 29263844 8 12264 (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
27579799      103       4772 System.Threading.WaitHandle:WaitOne (int,bool)
25615463      185         12 System.Threading.Thread:StartInternal ()
19749208 19 10942 System.Threading.Tasks.TpScheduler:TaskExecuterCallback (object)
19749189       19      10942 System.Threading.Tasks.Task:Execute ()
19749169       33      10942 System.Threading.Tasks.Task:ThreadStart ()
19748752 47 10942 System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object) 19748253 90 10942 System.Security.SecurityContext:Run (System.Security.SecurityContext,System.Threading.ContextCallback,object) 19748012 62 10942 System.Threading.ExecutionContext/<Run>c__AnonStorey0:<>m__0 (object) 19746136 55 10942 System.Threading.Tasks.Task/<ThreadStart>c__AnonStorey0:<>m__0 (object)
19744958       34      10942 System.Threading.Tasks.Task:InnerInvoke ()
18306055 81 5 System.Threading.Timer/Scheduler:SchedulerThread ()
18305830        3       1896 System.Threading.WaitHandle:WaitOne (int)
16264445 1 836 System.Threading.Tasks.TaskActionInvoker/FuncInvoke`1<bool>:Invoke (System.Threading.Tasks.Task,object,System.Threading.Tasks.Tas\
k)

And I don't really know what that means or where the problem is sitting. Can anybody help in reading the results? I have also attached the complete output of mprof-report. When the problem is identified I would be happy in helping to solve it.

Thank you,
 Matthias
_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

Reply via email to