#net
Где-то краем уха я слышал, что .NET код можно компилировать не в MSIL(Microsoft Intermediate Language), а прямиком в бинарник. Вроде как только средствами Visual Studio(а не Mono). Возможно ли это или Я ошибаюсь? Компилировать в бинарник умеет только VS или Mono тоже? Компиляция в машинный код дает выигрыш в производительности относительно компиляции в IL? Буду рад получить ответ даже не один из поставленных вопросов. P.S.: Сори, если нарушил правила портала, впихнув сюда сразу три вопроса.
Ответы
Ответ 1
Это возможно с помощью утилиты NGen.exe. Маловероятно, что есть что-то подобное NGen.exe, для Lixux. Компиляция дает выигрыш во времени загрузки, но не дает существенного выигрыша во время работы, так как все равно приложение работает на основе .NET и используется JIT. Статья на MSDN: Компиляция MSIL в машинный код.Ответ 2
Возможность предварительной компиляции в машинный код .Net сборок присутствует, для таких целей существует Ngen (подробнее на MSDN): Генератор образов в машинном коде (Ngen.exe) — это средство повышения быстродействия управляемых приложений. Ngen.exe создает образы в машинном коде, представляющие собой файлы, содержащие компилированный специфический для процессора машинный код, и устанавливает их в кэш образов в машинном коде на локальном компьютере. Среда выполнения может использовать образы в машинном коде, находящиеся в кэше, вместо использования JIT-компилятора для компиляции исходной сборки. Однако для выполнения необходимо присутствие установленного .Net фреймворка и самой сборки, для которой выполняется прекомпиляция.
Комментариев нет:
Отправить комментарий