GAC и ngen
От: Shmj Ниоткуда  
Дата: 11.10.17 14:03
Оценка:
Применяет ли система прекомпиляцию для сборок, которые добавляются в GAC. Или же нужно дополнительно запускать ngen?
Re: GAC и ngen
От: Shmj Ниоткуда  
Дата: 12.10.17 06:54
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Применяет ли система прекомпиляцию для сборок, которые добавляются в GAC. Или же нужно дополнительно запускать ngen?


Не делает, а напрасно...
Re[2]: GAC и ngen
От: Sinix  
Дата: 12.10.17 07:41
Оценка: 2 (1)
Здравствуйте, Shmj, Вы писали:

S>>Применяет ли система прекомпиляцию для сборок, которые добавляются в GAC. Или же нужно дополнительно запускать ngen?

S>Не делает, а напрасно...

Делает вообще-то. Другой вопрос, что нынче в gac сборки запихивать комильфо только для энтерпрайз-софта. В моде zero footprint, non-admin install, вот это всё.
Re[3]: GAC и ngen
От: LWhisper  
Дата: 25.01.18 10:22
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Делает вообще-то. Другой вопрос, что нынче в gac сборки запихивать комильфо только для энтерпрайз-софта. В моде zero footprint, non-admin install, вот это всё.


Можешь подсказать, насколько актуальны эти данные?
1. Никогда не видел, не слышал, не сталкивался с фоновыми NGEN'ами.
2. Все *.ni.dll сборки, которые я вижу созданы собственноручно.
3. Несмотря на установку в GAC здоровенная 10-мегабайтная сборка сериализации при каждом запуске тратит до 20 секунд на JIT-компиляцию, пока на неё вручную не натравишь ngen.exe
4. Относится ли это к серверным платформам, новым версия .NET, новым версиям ОС?
5. Значит ли это, что эра ручной генерации Native Image ушла в прошлое и теперь этого не нужно делать никогда?
Re[4]: GAC и ngen
От: alexzzzz  
Дата: 25.01.18 10:33
Оценка:
Здравствуйте, LWhisper, Вы писали:

LW>5. Значит ли это, что эра ручной генерации Native Image ушла в прошлое и теперь этого не нужно делать никогда?


Ну вот когда ставится Решарпер, если нажать кнопочку "показать детали", то видно, как он делает ngen install для своих сборок. А когда удаляешь, ngen uninstall.
Re[4]: GAC и ngen
От: Sinix  
Дата: 26.01.18 07:16
Оценка: 76 (2)
Здравствуйте, LWhisper, Вы писали:

LW>Можешь подсказать, насколько актуальны эти данные?

Auto ngen никуда не делся, но документирован никак от слова совсем. Пашет для win8 и 10.
Для траблшутинга можно смотреть лог нгена, в %windir%\Microsoft.NET\Framework64\v4.0.30319\ngen.log.
таски ".NET Framework NGEN v4.0.30319" в планировщике, для них надо врубить логирование.
и вот эту ссылку.

Как оно работает — тынц.


LW>3. Несмотря на установку в GAC здоровенная 10-мегабайтная сборка сериализации при каждом запуске тратит до 20 секунд на JIT-компиляцию, пока на неё вручную не натравишь ngen.exe

Нужно смотреть логи ngen-а и задач. Если Ngen не запускался планировщиком — всё понятно как бы. Если запускался — проверяем, есть ли ваша сборка в файлах в
%localappdata%\Microsoft\CLR_*\UsageLogs
если есть — это шикарный вопрос для stackoverflow

LW>5. Значит ли это, что эра ручной генерации Native Image ушла в прошлое и теперь этого не нужно делать никогда?

Ну... если есть инсталлятор — почему бы не запустить явно
В остальном — да, Ngen как правило используют в основном большие и тяжёлые приложения, ну и сам fw, конечно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.