web-dev-qa-db-ja.com

ngen.exeは常にCPUを使用しています

最近Windows 7をインストールしました。これはクリーンインストールでした(つまり、別のバージョンのWindowsからのアップグレードではありませんでした)が、他の多くのプログラムをインストールしました。すべての主流のアプリケーション-奇抜なものは何もありません。

それ以来、私のCPU使用率は常に約50%です。

タスクマネージャーは、ngen.exeが原因であることを示しています。これは長時間実行されるタスクではありません。少なくとも1秒に1回は新しいPIDを取得することがわかります。したがって、何かが常にトリガーしていると思います。

アプリケーションが実行されていない場合でも、常に実行されます。

他の誰かがこれを見たことがありますか?これを引き起こしている原因を見つけるにはどうすればよいですか?

10
teedyay

Isxekのアドバイスに従って、ProcessExplorerを使用して何が起こっているかを確認しました。私はこれを見つけました:

enter image description here

終了するプロセスは赤で強調表示されます。始めたばかりのものは緑です。これは、ngen.exeが常に終了し、再起動されていることを示しています。上部のグラフから、毎回約1秒間実行されていることがわかります。

ジムBが言うように、netfxupdate.exeは.NETフレームワークを通じて機能しています。鉱山は数週間続いていたので、どういうわけか何かに引っかかって何も進まなかったようです。

Regeditを使用して、PCを起動するたびにnetfxupdate.exeを起動するエントリを見つけました。

enter image description here

何らかの理由で.NET 1.1ライブラリにスタックしているようです。私は.NET開発者であり、コードの一部は.NET 1.1で実行されます。すべて正常に動作しているようなので、このエントリをレジストリから削除して、マシンを再起動しました。

(.NET 1.1に対して開発した場合でも)問題がない状態で数日が経過したので、このソリューションに満足しています。

7
teedyay

ProcessLibrary.com によると、ファイルngen.exeはMicrosoft.NETFrameworkの一部のようです。使用しているWindows7ラップトップで検索しましたが、見つかりませんでした。

Process Explorer を使用して、それがMicrosoftからの正当なファイルであるかどうかを判断できます。そこにあるngen.exeを右クリックして[プロパティ]を選択し、[確認]ボタンをクリックします。次のように表示されます(画像はsvchost.exe用です):

enter image description here

確認済みとして登録されない場合は、ここに記載されているアドバイスを試してみてください: 悪意のあるスパイウェア、マルウェア、アドウェア、ウイルス、トロイの木馬、またはルートキットをPCから削除するにはどうすればよいですか?

5
Isxek

NGENは、ドットネットフレームワークのネイティブコードジェネレーターです。ネイティブアセンブリが生成されるまで、バックグラウンドタスクとして解約されます

5
Jim B

参考までに-v1.1をインストールした後、Windows 2008R2のNetFxUpdateもスタックしました。%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キーを削除します。

1
Hornblower409

私もこの問題に直面しました。しかし、teedyayの答えは私を助けませんでした。 DIDヘルプの解決策は、自動更新を無効にすることです。参照 https://superuser.com/a/502049/201171

0
white.zaz

新しくインストールして新しく更新した後は、常に次のコマンドを実行します。

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

それらが終了するのを待つと、ngenは表示されなくなります。

0

また、明らかな理由もなくNGENが大量のCPUリソースを消費するという問題も経験しました。さまざまなフォーラムで見つかったいくつかの修正を適用しようとしましたが、うまくいきませんでした。

修正(これは私にとってはうまくいきましたが、なぜうまくいくのかについてはあまり意味がありません):ngenプロセスを右クリックしてファイルの場所を開くと、メインディレクトリに「ngen」という名前のテキストファイルがあります。私はファイルを削除しましたが、ngenを1週間見ず、カウントもしていません。

誰かがこれを試して、「修正」を確認したい場合は、それを試してください。

0
GoodSimeritan