Re[48]: Visual C# vs C++. Надо сравнить перспективы.
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 13.01.17 17:11
Оценка: +1
Здравствуйте, itslave, Вы писали:

I>Здравствуйте, Serginio1, Вы писали:


S>> А что? Его использует CLR и джитит если нужно. Так что они не могут быть разными. Там вся проблема в рефлексии.

I>Еще раз повторюсь: выход принципиально нового компилятора С++ в майкрософт лет 13 назад был просто событием. Никакой не супер революцией, делающей прорыв в языке. Хотя он приципиально новый, с нуля написанный, стол нормально поддерживать стандарт, оптимизация кода вышла на новый уровень и все такое.
I>Тут тоже самое.

Еще раз. Проблема не в компиляторе, а в CLR и JIT.
NGEN это тот же JIT только предварительный. У него проблемы с рефлексией и скоростью компиляции. То есть компиляция должна быть быстрой в ущерб оптимизации кода, рефлексия не дает максимально использовать регистры SIIMD ,инлайнинг итд итп

У .Net Native нет ограничений и он может использовать любой компилятор. Необязательно от MS.
Тот же Unity использует IL2CPP. А вот сборки должны быть под NetStandad

https://msdn.microsoft.com/ru-ru/magazine/mt590967.aspx

Наконец, .NET Core — это нижележащая инфраструктура, от которой зависит .NET Native. Когда проектировали .NET Native, стало понятно, что .NET Framework не подойдет в качестве фундамента для библиотек классов этой инфраструктуры. Дело в том, что .NET Native статически связывает инфраструктуру с приложением, а затем удаляет все лишнее, что не нужно приложению. (Здесь я сильно упрощаю общую картину, но идею вы уловили. Подробнее на эту тему см. «Inside .NET Native» по ссылке bit.ly/1UR7ChW.)

Традиционная реализация .NET Framework не предусматривает разбиения на модули, поэтому компоновщик (linker) не может включить в приложение лишь ту часть инфраструктуры, которая нужна приложению. Но .NET Core, по сути, является ответвлением .NET Framework, реализация которой оптимизирована с учетом модульности. Другое преимущество этой реализации — возможность поставлять .NET Core Framework как набор NuGet-пакетов, что позволяет вам обновлять индивидуальные классы вне самой .NET Framework. Однако, прежде чем двигаться дальше, давайте обсудим изменения в NuGet.

и солнце б утром не вставало, когда бы не было меня
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.