.Net .dll
файлы не являются реальными , то есть native , общими библиотеками.По умолчанию Mono также создает и использует файлы .dll
, используя тот же формат сборки, что и Microsoft .Net.Обе среды выполнения генерируют собственный код из этого промежуточного формата во время выполнения.
Однако можно выполнить компиляцию Ahead-Of-Time (AOT) и сохранить полученный файл .so
на диск (Microsoft .Net эквивалентноэто генерация и кэш ngen.exe
).Когда вы вызываете Mono с флагом --aot
, он сохраняет собственный код в виде библиотеки .so
и использует его всякий раз, когда тот же файл загружается снова.Возможно, вы также захотите добавить флаг -O=all
, чтобы включить все оптимизации (некоторые из них по умолчанию отключены, поскольку их выполнение сопряжено с большими затратами).
Однако имейте в виду, что кэшированная нативная библиотека, вероятно, выигралане может использоваться для ссылок на нативные программы.