Я создал консольное приложение в C # и запустил его в Windows / .NET в 5 раз быстрее, чем в Linux / Mono или Windows / Mono.
Приложение кодирует некоторые двоичные файлы в текстовый формат (JSON).
Я профилировал приложение на linux / mono, используя:
mono --profile=default:stat myconsoleapp.exe
Вот первая часть результата:
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% моно? Используют ли моно внутренние компоненты 3 четверти общего времени выполнения?
РЕДАКТИРОВАТЬ: Вот результат "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