|
|
11 мая 2011
утилита, позволяющая создавать из сборок на IL-коде для виртуальной машины CLR образы в машинном коде и устанавливать его в кэш сборок локального компьютера. За счёт этого повышается эффективность управляемых приложений: вместо JIT-компиляции загружается готовая сборка на native коде.
Преимущества:
- уменьшает время загрузки приложения так как JIT компиляции не требуется.
- уменьшает время первого запуска функций так как JIT компиляции не требуется.
- улучшает использование памяти так как JIT компилятор не требуется.
- полученные dll могут одновременно использоваться многими процессами.
- компиляция происходит под конкретный процессор, используемый в системе.
Имеет ряд недостатков:
- Ограничения на использование метода Assembly.LoadFrom
- Native image не заменяет исходные dll, а хранится отдельно. Поэтому используется больше дискового пространства.
- Рассинхронизация NGen-файлов. При появлении новой версии сборки необходимо обновлять и образ в локальном кеше.
- Так как native image и исходная сборка имеют разные адреса для функций, то при вызове методов находящихся в native image добавляется операция модификации базового адреса.
Когда применять:
- Если dll используют много процессов или оно используется из разных доменов. Native image даст возможность одновременного использования библиотеки многими процессами.
- Если необходимо ускорить запуск приложения и уменьшить используемую память.
- Применение к большим программам дает больший эффект, чем применение к маленьким программам.
- Для программ с длительным временем выполнения эффект очень маленький
Все .NET Framework при установке создают образы в Native image.
P.S. Может применяться для защиты исходного кода программы.
Native Image Generator at MSDN
Просмотров: 944
|