ngen.exe is constantly using CPU

10

2

I recently installed Windows 7. This was a clean install (i.e. not an upgrade from another version of Windows), but I did install a bunch of other programs. All mainstream applications - nothing wacky.

Since then, my CPU usage has been constantly at around 50%.

Task Manager shows me that ngen.exe is the culprit. It's not a long-running task: I can see that it gets a new PID at least once a second, so I guess something is constantly triggering it.

It does it all the time, even when I have no applications running.

Has anyone else seen this? How do I find out what's causing this?

teedyay

Posted 2010-05-04T15:37:33.220

Reputation: 308

Answers

7

Following Isxek's advice, I used Process Explorer to see what's going on. I found this:

enter image description here

Processes that are ending are highlighted red; ones just starting are green. This shows that ngen.exe is constantly ending and being restarted. From the graph at the top you can see it runs for about one second each time.

As Jim B says, netfxupdate.exe is working its way through the .NET framework. Mine had been going for several weeks, so for some reason it looks like it had got stuck on something and wasn't making any progress.

Using regedit, I found the entry that starts netfxupdate.exe whenever I start up my PC:

enter image description here

It looks like it's stuck on the .NET 1.1 libraries for some reason. I'm a .NET developer and some of my code runs on .NET 1.1. It all seems to be working fine, so I removed this entry from the registry and rebooted my machine.

It's been a couple of days now with no problems (even when developing against .NET 1.1), so I'm happy with this solution.

teedyay

Posted 2010-05-04T15:37:33.220

Reputation: 308

5

The file ngen.exe appears to be part of Microsoft .NET Framework, according to ProcessLibrary.com. I did a search for it in a Windows 7 laptop I'm using, but I could not find it.

You could use Process Explorer to determine whether it's a legitimate file from Microsoft. Right-click on ngen.exe there when you see it, choose Properties, then click on the Verify button. You should see something like this (the image is for svchost.exe):

enter image description here

If it does not register as verified, you might want to try the advice given here: How can I remove malicious spyware, malware, adware, viruses, trojans or rootkits from my PC?

Isxek

Posted 2010-05-04T15:37:33.220

Reputation: 3 785

5

NGEN is the native code generator for the dotnet framework. it will churn away as a background task until the native assemblies have been generated

Jim B

Posted 2010-05-04T15:37:33.220

Reputation: 455

4It's been going for a couple of weeks now - eight hours a day, five days a week. Surely that's not normal? – teedyay – 2010-05-04T20:49:26.317

1

FYI - The NetFxUpdate on my Windows 2008R2 got stuck as well after I installed v1.1, %temp%\netfxupdate.log shows:

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 =

and then (over and over again):

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

Same fix as you, remove the HKLM...\Run key.

Hornblower409

Posted 2010-05-04T15:37:33.220

Reputation: 51

0

I've also experienced the issue where NGEN would take up a lot of CPU resources for no apparent reason. I tried applying a few fixes found on various forums but no luck.

THE FIX (that worked for me and it doesn't make much sense as to why it works): if you open the file location by right clicking on the ngen process, there is a text file named "ngen" in the main directory. I removed the file and have not seen ngen for an entire week and counting.

If anyone wants to give this a try and confirm the "fix" go for it.

GoodSimeritan

Posted 2010-05-04T15:37:33.220

Reputation: 1

0

I always run these commands after fresh install and freshly updated:

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

Wait for them to finish and you won't see ngen anymore.

Futur'Fusionneur

Posted 2010-05-04T15:37:33.220

Reputation: 21

0

I have faced with this problem too. But the answer of teedyay didn't help me. The solution which DID help is Disabling Automatic Updates. See https://superuser.com/a/502049/201171

white.zaz

Posted 2010-05-04T15:37:33.220

Reputation: 109

-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

Source

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

Posted 2010-05-04T15:37:33.220

Reputation: 1