.NET Runtime Optimization ServiceがCPUに高負荷をかける場合の対処法

.NET Runtime Optimization Service(mscorsvw.exe)は、.NET Frameworkアセンブリをネイティブコードに事前コンパイルするバックグラウンドプロセスです。この処理はOSや.NET Frameworkの更新後に実行され、CPU使用率が高まるのは正常な動作です。完了までの時間はPCの性能に依存し、待機することが最善ですが、コマンドラインで高速化するか、サービスを一時停止することも可能です。

方法1:最適化プロセスの高速化

既定では、このサービスは他の作業の妨げにならないよう全CPUリソースを使用しません。コンソールから高優先度で強制的にコンパイルを実行することで、待ち時間を大幅に短縮できます。以下、OSバージョンとビット数別の手順です。

  1. 管理者権限でコマンドプロンプトを起動します。スタートメニューでcmdを検索し、右クリックして「管理者として実行」を選択します。
  2. インストール済み.NET Frameworkのバージョンを確認します。エクスプローラのアドレスバーに%windir%\Microsoft.NET\Framework\を入力してEnterを押し、v4.0.30319フォルダの有無を調べます。存在すれば4.x用のコマンドを、存在せずv2.0.50727がある場合は2.0/3.5用のコマンドを使用します。
  3. 環境に応じて以下のコマンドを実行します。

Windows 10/11(64ビット) / .NET Framework 4.x:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe executeQueuedItems
schTasks /run /Tn "\Microsoft\Windows\.NET Framework\.NET Framework NGEN v4.0.30319 64"

Windows 10/11(32ビット) / .NET Framework 4.x:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe executeQueuedItems

Windows 7(64ビット) / .NET Framework 4.x:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe executeQueuedItems
C:\Windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe executeQueuedItems

Windows 7(32ビット) / .NET Framework 4.x:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe executeQueuedItems

.NET Framework 2.0/3.5のみ(64ビットOS):

C:\Windows\Microsoft.NET\Framework64\v2.0.50727\ngen.exe executeQueuedItems
C:\Windows\Microsoft.NET\Framework\v2.0.50727\ngen.exe executeQueuedItems

.NET Framework 2.0/3.5のみ(32ビットOS):

C:\Windows\Microsoft.NET\Framework\v2.0.50727\ngen.exe executeQueuedItems

方法2:サービスの無効化または再起動

高速化後もmscorsvw.exeが長時間高負荷を継続する、または応答停止しているように見える場合は、サービスの再起動か一時停止を試します。恒久的な無効化は、多くのアプリケーションに不可欠な.NET Frameworkのパフォーマンス低下を招くため推奨されません。

  1. Win+Rキーを押し、services.mscを入力してEnterを押します。
  2. 一覧から「Microsoft .NET Framework NGEN」または「Runtime Optimization Service」を探します。
  3. サービスをクリックして選択し、左側の「停止」リンクで一時停止、または「再起動」を実行します。

別の方法として、サービスをダブルクリックしてプロパティを開き「停止」をクリックします。その後「スタートアップの種類」を「手動」または「無効」に変更すると、再起動後の自動起動を防げます。高負荷が許容できる状況になったら、種類を「自動」に戻し、バックグラウンド最適化の完了を許可してください。

最新の説明書