How to interpret the results of monoprofiling?

I created a console application in C # and ran it on Windows / .NET 5 times faster than on linux / mono or windows / mono. The application encodes some binary files into text format (JSON).

I have profiled the application on linux / mono using:

mono --profile=default:stat myconsoleapp.exe

Here is the first part of the result:

prof counts: total/unmanaged: 32274/25062
  23542 72.95 % mono
    459  1.42 % System.Decimal:Divide (System.Decimal,System.Decimal)
    457  1.42 % System.Decimal:Round (System.Decimal,int,System.MidpointRounding)
    411  1.27 % /lib/libz.so.1
    262  0.81 % /lib/tls/i686/cmov/libc.so.6(memmove
    253  0.78 % System.Decimal:IsZero ()
    247  0.77 % System.NumberFormatter:Init (string,double,int)
    213  0.66 % System.NumberFormatter:AppendDigits (int,int)

72.95% mono? Are mono internals using 3 blocks of total execution time?

EDIT: Here is the result of the "mono version"

Mono JIT compiler version 2.4.2.3 (Debian 2.4.2.3+dfsg-2)
Copyright (C) 2002-2008 Novell, Inc and Contributors. www.mono-project.com
        TLS:           __thread
        GC:            Included Boehm (with typed GC)
        SIGSEGV:       altstack
        Notifications: epoll
        Architecture:  x86
        Disabled:      none
+3
source share
1 answer

Correctly. It looks like your mono-binary code has its own characters, so you do not get more accurate information.

, () GC.

: ? IIRC, . svn trunk.

GC, GC, , .

, .

+1

Source: https://habr.com/ru/post/1743143/


All Articles