Службы, содержащие в названии подстроку .NET и запущенные всё время, обычно вызывают большое желание отключить их. Так было и с .NET Runtime Optimization Service v2.0.50727_X86, съедающей несколько казённых мегабайт. Хотя я как будто бы специально не использую .NET, она всё-таки нужна.
Как известно, традиционное приложение на .NET не является Windows-приложением. Оно содержит некий кросс-платформенный код, который на конкретной машине Windows преобразуется в native code для Windows. Это называется just-in-time, или JIT-компиляцией. Процессор выполняет native code.
В этой схеме есть огромные плюсы для девелопера, но для рутинной юзерской работы чистый JIT был бы кошмаром. Поэтому против JIT создали естественное противоядие: пре-компиляция, pre-JIT. Служба .NET Runtime Optimization Service в фоновом режиме компилирует все имеющиеся сборки .NET в "родной" код Windows и складывает их в некий кэш. И в дальнейшем, при обновлении частей кода .NET, по необходимости повторяет пре-компиляцию. Вот в чём разгадка долгих тормозов компьютера с недавно установленным или обновлённым .NET!
Что же здесь можно сделать полезного?
Вполне естественно желание перенести все эти тормоза с рабочего времени на время обеда. И оно осуществимо! Мы можем вручную выполнить весь pre-JIT, ожидающий своей очереди, чтобы впоследствии избежать всех возможных тормозов.
Смотрим, откуда запускается эта служба. У меня, например, из папки:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
Из этой папки выполняем команду ngen.exe executequeueditems. У меня она выполнялась, наверно, полчаса. После этого запустим её ещё раз и порадуемся сообщению: All compilation targets are up to date.
См. также статью в David Notario's WebLog.
Подписаться на:
Комментарии к сообщению (Atom)
Бесценная заметка. Net framework 4 на XP SP3 приводит к страшному торможению в первые минуты запуска системы. Смешно, что никто в интернете не знает что делать. Советуют отключить службу Microsoft .NET Framework NGEN v4.0.30319_X86. Кто-то предлагает какие-то неофициальные «исправления». Долго отказывался от использования Net framework 4 . Выполнил это (только с Net framework 4). Проблема ушла.
ОтветитьУдалитьСкромно присоединяюсь к Ivladislaw-у - заметка автора вылечила мою давнюю головную боль с Framework 4 vs XP sp3. Дмитрий, спасибо огромное, здоровья и удачи Вам!
ОтветитьУдалитьЗдравствуйте помогите пожалуйста, hp compag nc 8430 при загрузке личных параметров wind xp выставляет синий экран с кодами ошибок. это случилось скачивания и установки нет фрамеворк 4,3 тд как теперь их удалить? чрз эф8 можно и как?
ОтветитьУдалитьошибки 0x000000c2 (0x00000043, 0xd7a4000, 0x00000000, 0x0000000)
ОтветитьУдалить