ngen.exe está constantemente usando CPU

10

Instalei recentemente o Windows 7. Essa foi uma instalação limpa (ou seja, não é uma atualização de outra versão do Windows), mas eu instalei vários outros programas. Todas as aplicações principais - nada maluco.

Desde então, meu uso de CPU tem sido constantemente em torno de 50%.

O Gerenciador de Tarefas mostra que o ngen.exe é o culpado. Não é uma tarefa demorada: vejo que ela recebe um novo PID pelo menos uma vez por segundo, então acho que algo está constantemente provocando isso.

Ele faz isso o tempo todo, mesmo quando não tenho aplicativos em execução.

Alguém mais viu isso? Como descubro o que está causando isso?

    
por teedyay 04.05.2010 / 17:37

8 respostas

7

Seguindo o conselho da Isxek, usei o Process Explorer para ver o que está acontecendo. Eu encontrei isto:

Osprocessosqueestãoterminandosãodestacadosemvermelho;osqueestãoapenascomeçandosãoverdes.Issomostraqueongen.exeestáconstantementeterminandoesendoreiniciado.Dográficonotopo,vocêpodeverqueeleéexecutadoporcercadeumsegundoacadavez.

ComoJimBdiz,onetfxupdate.exeestátrabalhandono.NETframework.Omeuvinhaacontecendoháváriassemanas,então,poralgumarazão,parecequeeleficoupresoemalgumacoisaenãoestavafazendonenhumprogresso.

Usandooregedit,encontreiaentradaqueiniciaonetfxupdate.exesemprequeeuinicializomeuPC:

Parece que está preso nas bibliotecas do .NET 1.1 por algum motivo. Eu sou um desenvolvedor .NET e alguns dos meus códigos são executados no .NET 1.1. Tudo parece estar funcionando bem, então eu removi essa entrada do registro e reiniciei minha máquina.

Já faz alguns dias sem problemas (mesmo no desenvolvimento do .NET 1.1), por isso estou feliz com esta solução.

    
por 12.05.2010 / 12:01
5

NGEN é o gerador de código nativo para o framework dotnet. ele será revertido como uma tarefa em segundo plano até que os assemblies nativos tenham sido gerados

    
por 04.05.2010 / 18:50
5

O arquivo ngen.exe parece fazer parte do Microsoft .NET Framework, de acordo com ProcessLibrary.com . Fiz uma busca por ele em um laptop Windows 7 que estou usando, mas não consegui encontrá-lo.

Você pode usar o Process Explorer para determinar se é um arquivo legítimo da Microsoft. Clique com o botão direito do mouse no ngen.exe quando você o vir, escolha Propriedades e, em seguida, clique no botão Verificar. Você deve ver algo assim (a imagem é para svchost.exe ):

Seelenãoseregistrarcomoverificado,vocêpodetentaroconselhodadoaqui:

    
por 04.05.2010 / 17:58
1

FYI - O NetFxUpdate no meu Windows 2008R2 ficou preso depois que instalei a v1.1,% temp% \ netfxupdate.log mostra:

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 =

e depois (de novo e de novo):

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

Mesma correção que você, remova a chave HKLM ... \ Run.

    
por 05.03.2011 / 14:21
0

Eu enfrentei esse problema também. Mas a resposta de teedyay não me ajudou. A solução que ajudou DID está desabilitando as atualizações automáticas. Veja link

    
por 04.05.2013 / 17:08
0

Eu também experimentei o problema em que o NGEN tomava muitos recursos da CPU sem nenhum motivo aparente. Eu tentei aplicar algumas correções encontradas em vários fóruns, mas sem sorte.

O FIX (que funcionou para mim e não faz muito sentido por que funciona): se você abrir o local do arquivo clicando com o botão direito no processo ngen, há um arquivo de texto chamado "ngen" no diretório principal. Eu removi o arquivo e não vi ngen por uma semana inteira e contando.

Se alguém quiser experimentar isso e confirmar a "correção", vá em frente.

    
por 05.03.2016 / 04:58
0

Eu sempre executo esses comandos após a nova instalação e atualizada:

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

Espere que eles terminem e você não verá mais ngen.

    
por 14.02.2018 / 16:44
-1

After deleting the registry key below \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v2.0.50727\NGenService\Roots NGen will build up the registry structure by itself which “fixes” the issue

Fonte

    
por 14.02.2018 / 16:20