<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hello,<br>
    <br>
    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.<br>
    <br>
    Because this code is heavily using F# asyncs I tried to find
    existing bug reports of the problem.<br>
    I found the following entries:<br>
<a class="moz-txt-link-freetext" href="http://lists.ximian.com/pipermail/mono-devel-list/2005-April/011477.html">http://lists.ximian.com/pipermail/mono-devel-list/2005-April/011477.html</a><br>
    <a class="moz-txt-link-freetext" href="http://lists.ximian.com/pipermail/mono-bugs/2010-May/100566.html">http://lists.ximian.com/pipermail/mono-bugs/2010-May/100566.html</a><br>
<a class="moz-txt-link-freetext" href="http://lists.ximian.com/pipermail/mono-devel-list/2010-January/033814.html">http://lists.ximian.com/pipermail/mono-devel-list/2010-January/033814.html</a><br>
    But they all don't seem to be directly related, because of this I
    decided to use the mono profiler and check the results.<br>
    <br>
    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?).<br>
    For reference: I got the mighty: "<span style="color: rgb(0, 0, 0);
      font-family: Courier; font-size: 13px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: auto; text-align: start;
      text-indent: 0px; text-transform: none; white-space: normal;
      widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;
      background-color: rgb(255, 255, 255); display: inline !important;
      float: none;">The 'log' profiler wasn't found in the main
      executable nor could it be loaded from 'mono-profiler-log'."</span><br>
    <br>
    Afer running the profiler the top results are:<br>
    Method call summary<br>
    Total(ms) Self(ms)      Calls Method name<br>
    67733962   539203     229540
    Microsoft.FSharp.Control.AsyncBuilderImpl/callA@815:Invoke
    (Microsoft.FSharp.Control.AsyncParams`1<b>)<br>
    49135479   197016     163464
    Microsoft.FSharp.Control.AsyncBuilderImpl/resultA@781:Invoke
    (Microsoft.FSharp.Control.AsyncParams`1<a>)<br>
    48703438    33181     162414
    Microsoft.FSharp.Control.AsyncBuilderImpl/args@799-1:Invoke (a)<br>
    42976340 42976339       5318 (wrapper managed-to-native)
    System.Threading.WaitHandle:WaitOne_internal
    (System.Threading.WaitHandle,intptr,int,bool)<br>
    42600383   368321     164611
    Microsoft.FSharp.Control.AsyncBuilderImpl/bindA@793:Invoke
    (Microsoft.FSharp.Control.AsyncParams`1<b>)<br>
    37193074     1632      99251 (wrapper runtime-invoke)
    <Module>:runtime_invoke_void__this___object
    (object,intptr,intptr,intptr)<br>
    29263844        8      12264 (wrapper runtime-invoke)
    object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)<br>
    27579799      103       4772 System.Threading.WaitHandle:WaitOne
    (int,bool)<br>
    25615463      185         12 System.Threading.Thread:StartInternal
    ()<br>
    19749208       19      10942
    System.Threading.Tasks.TpScheduler:TaskExecuterCallback (object)<br>
    19749189       19      10942 System.Threading.Tasks.Task:Execute ()<br>
    19749169       33      10942 System.Threading.Tasks.Task:ThreadStart
    ()<br>
    19748752       47      10942 System.Threading.ExecutionContext:Run
(System.Threading.ExecutionContext,System.Threading.ContextCallback,object)<br>
    19748253       90      10942 System.Security.SecurityContext:Run
(System.Security.SecurityContext,System.Threading.ContextCallback,object)<br>
    19748012       62      10942
    System.Threading.ExecutionContext/<Run>c__AnonStorey0:<>m__0
    (object)<br>
    19746136       55      10942
    System.Threading.Tasks.Task/<ThreadStart>c__AnonStorey0:<>m__0
    (object)<br>
    19744958       34      10942 System.Threading.Tasks.Task:InnerInvoke
    ()<br>
    18306055       81          5
    System.Threading.Timer/Scheduler:SchedulerThread ()<br>
    18305830        3       1896 System.Threading.WaitHandle:WaitOne
    (int)<br>
    16264445        1        836
    System.Threading.Tasks.TaskActionInvoker/FuncInvoke`1<bool>:Invoke
    (System.Threading.Tasks.Task,object,System.Threading.Tasks.Tas\<br>
    k)<br>
    <br>
    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 <tt>mprof-report.</tt> When the
    problem is identified I would be happy in helping to solve it.<br>
    <br>
    Thank you,<br>
     Matthias<br>
  </body>
</html>