Tutorial: Hohe CPU-Auslastung durch .NET Runtime Optimization Service beheben

Melden

Hier ist ein ausführliches Tutorial, wie du das Problem mit der hohen CPU-Auslastung durch den .NET Runtime Optimization Service (mscorsvw.exe) unter Windows löst.


Der Prozess mscorsvw.exe (auch bekannt als .NET Runtime Optimization Service) sorgt oft direkt nach Windows-Updates für eine extrem hohe CPU-Last. Seine Aufgabe ist es, .NET-Bibliotheken im Hintergrund zu kompilieren, damit Programme schneller starten. Normalerweise geschieht dies unbemerkt, doch manchmal bleibt der Prozess „hängen“ oder arbeitet sehr ineffizient.

Hier sind die effektivsten Methoden, um das Problem zu lösen.


Methode 1: Den Prozess beschleunigen (Empfohlen)

Anstatt den Dienst zu beenden, können wir Windows anweisen, alle verfügbaren CPU-Kerne zu nutzen, um die Optimierung innerhalb von Sekunden abzuschließen, anstatt Stunden zu warten.

  1. Drücke die Windows-Taste und tippe cmd ein.

  2. Klicke mit der rechten Maustaste auf „Eingabeaufforderung“ und wähle Als Administrator ausführen.

  3. Kopiere je nach deinem System den passenden Befehl und füge ihn mit einem Rechtsklick in die Konsole ein:

    • Für 64-Bit-Systeme (Standard):

      cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319

      (Drücke Enter, dann gib den nächsten Befehl ein:)

      ngen.exe executeQueuedItems
    • Für 32-Bit-Systeme:

      cd C:\Windows\Microsoft.NET\Framework\v4.0.30319

      (Drücke Enter, dann gib den nächsten Befehl ein:)

      ngen.exe executeQueuedItems
  4. Was passiert nun? Windows wird nun alle ausstehenden Optimierungen mit maximaler Geschwindigkeit abarbeiten. Sobald der Cursor wieder blinkt und die Arbeit beendet ist, wird die CPU-Last im Task-Manager sofort sinken.


Methode 2: Das offizielle Skript von Microsoft nutzen

Microsoft ist sich des Problems bewusst und hat ein PowerShell-Skript bereitgestellt, das den Prozess automatisch beschleunigt.

  1. Besuche die GitHub-Seite des Microsoft .NET-Teams.
  2. Klicke rechts auf Raw, um den reinen Text anzuzeigen.
  3. Drücke Strg + S, um die Datei als ngen.ps1 auf deinem Desktop zu speichern.
  4. Klicke mit der rechten Maustaste auf die Datei auf deinem Desktop und wähle Mit PowerShell ausführen.
  5. Das Skript erkennt automatisch deine Windows-Version und schließt alle Optimierungen im Rekordtempo ab.

Methode 3: Den Dienst vorübergehend neu starten

Wenn der Prozess feststeckt, kann ein Neustart des Dienstes helfen.

  1. Drücke Windows-Taste + R, tippe services.msc ein und drücke Enter.
  2. Suche in der Liste nach Microsoft .NET Framework NGEN... (es können mehrere Einträge sein).
  3. Mache einen Rechtsklick darauf und wähle Neu starten.
  4. Falls der Dienst auf „Deaktiviert“ steht, stelle ihn auf Automatisch (Verzögerter Start).

Methode 4: Den Dienst deaktivieren (Notlösung)

Falls die Last immer wiederkehrt und die obigen Methoden nicht helfen, kannst du den Dienst deaktivieren. Achtung: Dies kann dazu führen, dass .NET-Anwendungen etwas langsamer starten.

  1. Drücke Windows-Taste + R, tippe services.msc ein.
  2. Suche die Microsoft .NET Framework NGEN-Dienste.
  3. Rechtsklick -> Eigenschaften.
  4. Stelle den Starttyp auf Deaktiviert und klicke auf Stoppen.

Zusammenfassung

In 90 % der Fälle ist Methode 1 die beste Lösung. Der Dienst ist nicht "kaputt", er arbeitet nur sehr langsam. Durch den ngen.exe-Befehl zwingst du ihn, seine Arbeit sofort zu erledigen, wodurch die CPU-Last dauerhaft verschwindet.

Hinweis: Nach dem nächsten großen Windows-Update kann mscorsvw.exe erneut erscheinen. Führe in diesem Fall einfach Methode 1 erneut aus.

0