The Native Image Generator — утилита, позволяющая создавать из сборок на CIL-коде для исполняющей среды CLR-образы в машинном коде (native image) и устанавливать его в кэш сборок локального компьютера. За счёт этого повышается эффективность управляемых приложений: вместо JIT-компиляции загружается готовая сборка на native-коде.
Преимущества: уменьшает время загрузки приложения, так как JIT-компиляции не требуется. уменьшает время первого запуска функций, так как JIT-компиляции не требуется. улучшает использование памяти, так как JIT-компилятор не требуется. полученные dll могут одновременно использоваться многими процессами. (sharing between processes) компиляция происходит под конкретный процессор, используемый в системе.
Недостатки: Ограничения на использование метода Assembly.LoadFrom Native image не заменяет исходные dll, а хранится отдельно. Поэтому используется больше дискового пространства. Рассинхронизация NGen-файлов. При появлении новой версии сборки необходимо обновлять и образ в локальном кеше. Так как native image и исходная сборка имеют разные адреса для функций, то при вызове методов, находящихся в native image, добавляется операция модификации базового адреса.
Применение: Если dll используют много процессов или оно используется из разных доменов. Native image даст возможность одновременного использования библиотеки многими процессами. Если необходимо ускорить запуск приложения и уменьшить используемую память. Применение к большим программам дает больший эффект, чем применение к маленьким программам. Для программ с длительным временем выполнения эффект очень маленький (так как JIT-компиляция осуществляется только один раз — по первому обращению. Далее используется скомпилированная версия. И с каждым новым вызовом суммарная разница будет уменьшаться.)
Все .NET Framework при установке создают образы в Native image.
Литература
Ссылки Native Image Generator at MSDN
См. также Платформа .NET Framework
Категория:.NET