Страницы

Поиск по вопросам

понедельник, 3 февраля 2020 г.

.NET Native и RyuJIT

#c_sharp #cpp #net #net_native


Недавно, прочитав интервью от Джеффри Рихтера, узнал о .NET Native компиляторе, который
превращает код CIL в нативный код, неотличимый от кода после компиляции С++, также
узнал о RyuJIT и появилось несколько вопросов, ответы на которые я не нашел в интернете:

.NET Native и RyuJIT - это одно и то-же? В какой код компилирует RyuJIT?
XAMARIN тоже компилирует в натив, не эти ли компиляторы они используют?
В боксе VisualStudio 2013 уже есть поддержка этих компиляторов? Если есть - как использовать
и как оно действует?, если нет - КАКОГО ЧЕРТА НЕ ВВЕЛИ??
    


Ответы

Ответ 1



о RuyJIT, о том, как его попробовать, можно почитать на хабре. Если очень коротко, то это сильно переписаный код стандартного JIT компилятора из .NET. .NET Native и RyuJIT - это одно и то-же? В какой код компилирует RyuJIT? и нет, и да. .NET Native пытается сделать код для конкретной платформы. RyuJIT - это просто улучшенный компилятор .NET. Умеет ли он делать native код - непонятно. XAMARIN тоже компилирует в натив, не эти ли компиляторы они используют? XAMARIN базируется на проекте Mono (это свободная версия .NET, которая работает на многих платформах, в том числе и на линуксе, достаточно совместима с .NET). Поэтому, короткий ответ на эти два вопроса - нет и (скорее всего) нет. В боксе VisualStudio 2013 уже есть поддержка этих компиляторов? Если есть - как использовать и как оно действует?, если нет - КАКОГО ЧЕРТА НЕ ВВЕЛИ?? в статье на хабре есть описание как ее потестить. Не ввели, потому что похоже только разрабатывается. А .NET Native получается, если использовать nugen (утилита из поставки .Net framework).

Ответ 2



1) Нет. RyuJIT — это улучшенная версия JIT-компилятора, а .NET Native вовсе не JIT. [JIT == just in time, программа компилируется в нативный код во время выполнения. .NET Native компилирует в нативный код на машине разработчика.] 2) Не знаю, не имел дела с Xamarin. Не думаю, что там нативная компиляция, скорее всего, он основан на Mono. 3) Да. Смотрите комментарий @Flammable.

Комментариев нет:

Отправить комментарий