#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.
Комментариев нет:
Отправить комментарий