ngen.exe постоянно использует процессор

Я недавно установил Windows 7. Это была чистая установка (то есть не обновление с другой версии Windows), но я установил кучу других программ. Все основные приложения - ничего дурацкого.

С тех пор загрузка моего процессора постоянно составляет около 50%.

Диспетчер задач показывает мне, что виновником является ngen.exe. Это не длительная задача: я вижу, что он получает новый PID, по крайней мере, один раз в секунду, поэтому я предполагаю, что что-то постоянно вызывает его.

Он делает это все время, даже когда у меня нет запущенных приложений.

Кто-нибудь еще видел это? Как я узнаю, что вызывает это?

8 ответов

Решение

Следуя совету Isxek, я использовал Process Explorer, чтобы увидеть, что происходит. Я нашел это:

введите описание здесь

Процессы, которые заканчиваются, выделяются красным; те, которые только начинаются, зеленые. Это показывает, что ngen.exe постоянно заканчивается и перезапускается. Из графика в верхней части вы можете видеть, что он работает около одной секунды каждый раз.

Как говорит Джим Б., netfxupdate.exe работает через.NET Framework. Моя шла уже несколько недель, поэтому почему-то похоже, что она застряла на чем-то и не прогрессировала.

Используя regedit, я нашел запись, которая запускает netfxupdate.exe при каждом запуске компьютера:

введите описание здесь

Похоже, он застрял в библиотеках.NET 1.1 по какой-то причине. Я являюсь разработчиком.NET, и часть моего кода работает на.NET 1.1. Кажется, все работает нормально, поэтому я удалил эту запись из реестра и перезагрузил компьютер.

Прошло уже пару дней без проблем (даже при разработке под.NET 1.1), поэтому я доволен этим решением.

NGEN - это собственный генератор кода для платформы dotnet. он будет работать как фоновая задача, пока не будут сгенерированы нативные сборки

Файл ngen.exe по-видимому, является частью Microsoft .NET Framework, согласно ProcessLibrary.com. Я выполнил поиск в ноутбуке с Windows 7, который использую, но не смог найти.

Вы можете использовать Process Explorer, чтобы определить, является ли это законным файлом от Microsoft. Когда вы увидите его, щелкните правой кнопкой мыши на ngen.exe, выберите "Свойства" и нажмите кнопку "Подтвердить". Вы должны увидеть что-то вроде этого (изображение для svchost.exe):

введите описание здесь

Если он не зарегистрирован как проверенный, вы можете попробовать совет, приведенный здесь: Как я могу удалить вредоносные шпионские программы, вредоносное ПО, рекламное ПО, вирусы, трояны или руткиты с моего компьютера?

К вашему сведению - NetFxUpdate на моем Windows 2008R2 застрял также после того, как я установил v1.1, %temp%\netfxupdate.log показывает:

START: invocation ID = 1; version = v1.1.4322; params = 
REGWRITE: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce NetFxUpdate_v1.1.4322="C:\Windows\Microsoft.NET\Framework\v1.1.4322\netfxupdate.exe" 0 v1.1.4322 GAC + NI NID
REGDELETE: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run NetFxUpdate_v1.1.4322
INVOKE: "C:\Windows\Microsoft.NET\Framework\v1.1.4322\netfxupdate.exe" 2 v1.1.4322 NI NID
START: invocation ID = 2; version = v1.1.4322; params =

а затем (снова и снова):

INVOKE: "C:\Windows\Microsoft.NET\Framework\v1.1.4322\ngen.exe" /nologo /silent "C:\Windows\Microsoft.NET\Framework\v1.1.4322\System.dll"
RETURN: -1

То же исправление, что и у вас, удалите ключ HKLM...\Run.

Я тоже столкнулся с этой проблемой. Но ответ teedyay не помог мне Решение, которое помогло DID, - отключение автоматического обновления. См. /questions/873784/otklyuchit-avtomaticheskoe-obsluzhivanie-v-windows-8/873792#873792

Я также столкнулся с проблемой, когда NGEN занимал много ресурсов ЦП без видимой причины. Я попытался применить несколько исправлений, найденных на разных форумах, но безуспешно.

ИСПРАВЛЕНИЕ (это работало для меня и не имеет особого смысла относительно того, почему это работает): если вы открываете местоположение файла, щелкнув правой кнопкой мыши по процессу ngen, в главном каталоге будет текстовый файл с именем "ngen". Я удалил файл и не видел ngen целую неделю и считаю.

Если кто-то захочет попробовать и подтвердить исправление, сделайте это.

Я всегда запускаю эти команды после новой установки и обновления:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe executequeueditems
C:\Windows\Microsoft.NET\Framework\v2.0.50727\ngen.exe executequeueditems

Подождите, пока они закончат, и вы больше не увидите ngen.

После удаления раздела реестра ниже \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v2.0.50727\NGenService\Roots NGen самостоятельно создаст структуру реестра, которая "исправит" проблему

Источник

Другие вопросы по тегам