ngen.exe stale używa procesora

10

Niedawno zainstalowałem system Windows 7. To była czysta instalacja (tj. Nie aktualizacja z innej wersji systemu Windows), ale zainstalowałem kilka innych programów. Wszystkie aplikacje głównego nurtu - nic zwariowanego.

Od tego czasu moje użycie procesora stale wynosi około 50%.

Menedżer zadań pokazuje mi, że winowajcą jest ngen.exe. To nie jest długotrwałe zadanie: widzę, że dostaje nowy PID przynajmniej raz na sekundę, więc myślę, że coś go ciągle wyzwala.

Robi to cały czas, nawet gdy nie mam uruchomionych aplikacji.

Czy ktoś jeszcze to widział? Jak dowiedzieć się, co to powoduje?

teedyay
źródło

Odpowiedzi:

7

Postępując zgodnie z radą Isxka, skorzystałem z Process Explorer, aby zobaczyć, co się dzieje. Znalazłem to:

wprowadź opis zdjęcia tutaj

Procesy, które się kończą, są podświetlone na czerwono; te, które dopiero zaczynają, są zielone. To pokazuje, że ngen.exe ciągle się kończy i jest restartowany. Z wykresu u góry widać, że działa za każdym razem przez około sekundę.

Jak mówi Jim B, program netfxupdate.exe działa w środowisku .NET. Mój jeździł od kilku tygodni, więc z jakiegoś powodu wygląda na to, że utknął na czymś i nie robił żadnych postępów.

Korzystając z regedit, znalazłem wpis, który uruchamia netfxupdate.exe przy każdym uruchomieniu komputera:

wprowadź opis zdjęcia tutaj

Wygląda na to, że z jakiegoś powodu utknął w bibliotekach .NET 1.1. Jestem programistą .NET i część mojego kodu działa na .NET 1.1. Wygląda na to, że wszystko działa poprawnie, więc usunąłem ten wpis z rejestru i ponownie uruchomiłem komputer.

Minęło kilka dni bez żadnych problemów (nawet przy programowaniu przeciwko .NET 1.1), więc jestem zadowolony z tego rozwiązania.

teedyay
źródło
5

NGEN to natywny generator kodu dla środowiska dotnet. odejdzie jako zadanie w tle, dopóki nie zostaną wygenerowane natywne zestawy

Jim B.
źródło
4
Trwa już od kilku tygodni - osiem godzin dziennie, pięć dni w tygodniu. Z pewnością to nie jest normalne?
teedyay
5

Plik ngen.exewydaje się być częścią Microsoft .NET Framework, zgodnie z ProcessLibrary.com . Poszukałem go w używanym przeze mnie laptopie z systemem Windows 7, ale nie mogłem go znaleźć.

Możesz użyć Process Explorer, aby ustalić, czy jest to prawidłowy plik firmy Microsoft. Kliknij prawym przyciskiem myszy ngen.exe, gdy go zobaczysz, wybierz Właściwości, a następnie kliknij przycisk Weryfikuj. Powinieneś zobaczyć coś takiego (zdjęcie jest dla svchost.exe):

wprowadź opis zdjęcia tutaj

Jeśli nie zarejestruje się jako zweryfikowany, możesz spróbować skorzystać z podanej tutaj porady: Jak usunąć złośliwe oprogramowanie szpiegujące, złośliwe oprogramowanie, oprogramowanie reklamowe, wirusy, trojany lub rootkity z mojego komputera?

Isxek
źródło
1

Do Twojej wiadomości - NetFxUpdate w moim systemie Windows 2008R2 również utknął po zainstalowaniu wersji 1.1,% temp% \ netfxupdate.log pokazuje:

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 =

a następnie (w kółko):

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

Tak samo jak Ty, usuń klucz HKLM ... \ Run.

Hornblower409
źródło
0

Zetknąłem się również z problemem, w którym NGEN bez wyraźnego powodu zajmowałoby wiele zasobów procesora. Próbowałem zastosować kilka poprawek znalezionych na różnych forach, ale bez powodzenia.

POPRAWKA (która działała dla mnie i nie ma większego sensu, dlaczego to działa): jeśli otworzysz lokalizację pliku, klikając prawym przyciskiem myszy proces ngen, w katalogu głównym znajduje się plik tekstowy o nazwie „ngen”. Usunąłem plik i nie widziałem ngen przez cały tydzień i wciąż rośnie.

Jeśli ktoś chce spróbować i potwierdzić poprawkę, idź do niego.

GoodSimeritan
źródło
0

Zawsze uruchamiam te polecenia po nowej instalacji i świeżo zaktualizowanej:

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

Poczekaj, aż skończą, a nie zobaczysz już ngen.

Futur'Fusionneur
źródło
-1

Po usunięciu klucza rejestru poniżej \ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFramework \ v2.0.50727 \ NGenService \ Roots NGen sam zbuduje strukturę rejestru, która „naprawi” problem

Źródło

Александр Митюшов
źródło