ngen.exe usa constantemente la CPU

10

Recientemente instalé Windows 7. Esta fue una instalación limpia (es decir, no una actualización de otra versión de Windows), pero instalé muchos otros programas. Todas las aplicaciones convencionales, nada raro.

Desde entonces, mi uso de CPU ha estado constantemente en torno al 50%.

El Administrador de tareas me muestra que ngen.exe es el culpable. No es una tarea de larga duración: puedo ver que obtiene un nuevo PID al menos una vez por segundo, así que supongo que algo lo desencadena constantemente.

Lo hace todo el tiempo, incluso cuando no tengo aplicaciones en ejecución.

¿Alguien más ha visto esto? ¿Cómo puedo averiguar qué está causando esto?

teedyay
fuente

Respuestas:

7

Siguiendo el consejo de Isxek, utilicé Process Explorer para ver qué está pasando. Encontré esto:

ingrese la descripción de la imagen aquí

Los procesos que están finalizando se resaltan en rojo; los que recién comienzan son verdes. Esto muestra que ngen.exe finaliza constantemente y se reinicia. Desde el gráfico en la parte superior, puede ver que se ejecuta durante aproximadamente un segundo cada vez.

Como dice Jim B, netfxupdate.exe se está abriendo camino a través del marco .NET. El mío había estado funcionando durante varias semanas, así que por alguna razón parece que se había quedado atascado en algo y no estaba haciendo ningún progreso.

Usando regedit, encontré la entrada que inicia netfxupdate.exe cada vez que inicio mi PC:

ingrese la descripción de la imagen aquí

Parece que está atascado en las bibliotecas .NET 1.1 por alguna razón. Soy desarrollador de .NET y algunos de mis códigos se ejecutan en .NET 1.1. Todo parece estar funcionando bien, así que eliminé esta entrada del registro y reinicié mi máquina.

Han pasado un par de días sin problemas (incluso cuando se desarrolla contra .NET 1.1), así que estoy contento con esta solución.

teedyay
fuente
5

NGEN es el generador de código nativo para el marco dotnet. se eliminará como una tarea en segundo plano hasta que se hayan generado los ensamblados nativos

Jim B
fuente
44
Ya lleva un par de semanas, ocho horas al día, cinco días a la semana. ¿Seguramente eso no es normal?
teedyay
5

El archivo ngen.exeparece ser parte de Microsoft .NET Framework, de acuerdo con ProcessLibrary.com . Lo busqué en una computadora portátil con Windows 7 que estoy usando, pero no pude encontrarlo.

Puede usar Process Explorer para determinar si se trata de un archivo legítimo de Microsoft. Haga clic derecho en ngen.exe allí cuando lo vea, elija Propiedades, luego haga clic en el botón Verificar. Deberías ver algo como esto (la imagen es para svchost.exe):

ingrese la descripción de la imagen aquí

Si no se registra como verificado, es posible que desee probar los consejos dados aquí: ¿Cómo puedo eliminar de mi PC spyware malicioso, malware, adware, virus, troyanos o rootkits?

Isxek
fuente
1

FYI: NetFxUpdate en mi Windows 2008R2 también se atascó después de instalar v1.1,% temp% \ netfxupdate.log muestra:

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 =

y luego (una y otra vez):

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

La misma solución que usted, elimine la clave HKLM ... \ Run.

Hornblower409
fuente
0

También me he enfrentado a este problema. Pero la respuesta de teedyayno me ayudó. La solución que ayudó DID es deshabilitar las actualizaciones automáticas. Ver /superuser//a/502049/201171

white.zaz
fuente
0

También he experimentado el problema de que NGEN ocuparía muchos recursos de la CPU sin razón aparente. Intenté aplicar algunas correcciones encontradas en varios foros, pero no tuve suerte.

THE FIX (eso funcionó para mí y no tiene mucho sentido por qué funciona): si abres la ubicación del archivo haciendo clic derecho en el proceso ngen, hay un archivo de texto llamado "ngen" en el directorio principal. Eliminé el archivo y no he visto ngen en una semana entera y contando.

Si alguien quiere probar esto y confirmar la "solución", hágalo.

GoodSimeritan
fuente
0

Siempre ejecuto estos comandos después de una nueva instalación y una actualización reciente:

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

Espera a que terminen y ya no verás ngen.

Futur'Fusionneur
fuente
-1

Después de eliminar la clave de registro a continuación \ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFramework \ v2.0.50727 \ NGenService \ Roots NGen construirá la estructura de registro por sí misma, lo que "arregla" el problema

Fuente

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