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

10

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

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

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

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

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

teedyay
источник

Ответы:

7

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

введите описание изображения здесь

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

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

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

введите описание изображения здесь

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

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

teedyay
источник
5

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

Джим Б
источник
4
Это продолжается уже пару недель - восемь часов в день, пять дней в неделю. Конечно, это не нормально?
teedyay
5

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

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

введите описание изображения здесь

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

Isxek
источник
1

К вашему сведению - 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.

Hornblower409
источник
0

Я тоже столкнулся с этой проблемой. Но ответ teedyayне помог мне. Решение, которое помогло DID, - отключение автоматического обновления. См. Https://superuser.com/a/502049/201171.

white.zaz
источник
0

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

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

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

GoodSimeritan
источник
0

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

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

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

Futur'Fusionneur
источник
-1

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

Источник

Александр Митюшов
источник