Ngen
Перейти к навигации
Перейти к поиску
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.
Литература
[править|править код]- Bart De Smet.Native Image Generation// C# 4.0 Unleashed. — Pearson Education, 2011. — P. 115. — 1080 p. —ISBN 9780132681728.
- Jeffrey Richter.The Native Code Generation Tool: NGen.exe// CLR via C#. — Pearson Education, 2012. — P. 35. — 894 p. —ISBN 9780735668768.
Ссылки
[править|править код]Native Image Generator at MSDN
См. также
[править|править код]- Платформа.NET Framework
Для улучшения этой статьижелательно:
|