Der hohe RAM-Verbrauch von Windows kann frustrierend sein, insbesondere wenn der Computer beim gleichzeitigen Ausführen mehrerer Programme langsamer wird. Ein Teil des Problems liegt jedoch möglicherweise nicht allein an Windows selbst, sondern auch an Hintergrundanwendungen und -diensten, die unnötigerweise RAM verbrauchen.
Es gibt elektronische Anwendungen und Tools, die die RAM-Nutzung überwachen und die Programme mit dem höchsten RAM-Verbrauch identifizieren. Einige bieten sogar Funktionen zur Verwaltung von Hintergrundprozessen und -diensten. Diese Tools erleichtern die Ermittlung der RAM-Verbraucher, anstatt Programme willkürlich zu schließen oder wichtige Systemdienste zu deaktivieren.
Die Reduzierung des Speicherverbrauchs bedeutet jedoch nicht, möglichst viele Prozesse zu beenden. Arbeitsspeicher (RAM) ist schließlich da, um genutzt zu werden, und ein erhöhter Verbrauch ist normal, wenn viele Anwendungen gleichzeitig laufen. Das eigentliche Ziel ist es, unnötige Programme zu identifizieren und deren Auslastung zu reduzieren, ohne die Stabilität von Windows oder die Leistung wichtiger Anwendungen zu beeinträchtigen.
Windows wird oft für seinen hohen RAM-Verbrauch verantwortlich gemacht, und das stimmt manchmal auch. Sollten Sie jedoch jemals feststellen, dass Ihr Task-Manager mit gleichzeitig laufenden Anwendungen wie Slack, Discord und VS Code überquillt, wissen Sie, dass das Betriebssystem nicht der eigentliche Übeltäter ist. Es handelt sich dabei um Electron-Anwendungen, die jeweils unbemerkt eine vollständige Browser-Engine in den Arbeitsspeicher laden, nur um ein Chatfenster oder einen Code-Editor zu öffnen, und dadurch einen erheblichen Teil Ihres RAMs belegen.
Electron-Anwendungen verbrauchen enorm viel Speicherplatz.
Schon das Ausführen einer kleinen Anzahl dieser Anwendungen verbraucht Arbeitsspeicher.
Electron funktioniert durch die Kombination zweier Programme, die normalerweise nicht miteinander in Verbindung gebracht werden: Googles Chromium-Browser-Engine und Node.js. Diese Kombination ermöglicht es Entwicklern, Desktop-Anwendungen zu erstellen. JavaScript HTML und CSS sind Technologien, die den meisten Entwicklern vertraut sind.
Noch besser: Sie können diese Programme nutzen, ohne für jedes Betriebssystem separaten Code schreiben zu müssen. In jeder Electron-Anwendung laufen mindestens zwei separate Prozesse. Der Hauptprozess hat vollen Zugriff auf das Dateisystem, die Hardware und das Betriebssystem des Computers. Zusätzlich gibt es einen oder mehrere Rendering-Prozesse – Webseiten, die für die Darstellung der Benutzeroberfläche verantwortlich sind.
Aus Sicherheitsgründen sind diese Rendering-Prozesse vom restlichen System isoliert und kommunizieren daher über eine Kommunikationsschicht mit dem Hauptprozess, anstatt direkt mit dem System. Die gleichzeitige Ausführung von Node.js und Chromium auf demselben Rechner erfordert komplexe Hintergrundprozesse, um Interferenzen zwischen ihren unterschiedlichen Ereignissystemen zu verhindern.
Der größte Nachteil dabei ist der enorme Umfang der Electron-Bibliothek. Native Anwendungen, die mit dem Betriebssystem mitgeliefert werden, können Bibliotheken gemeinsam nutzen, die von anderen Anwendungen und dem Betriebssystem selbst in den Speicher geladen wurden. Electron-Anwendungen können dies nicht. Jede Anwendung verwendet ihre eigene, unabhängige Version des Webbrowsers, und keine der Anwendungen teilt Bibliotheken.
Wenn Sie also eine einzelne Electron-Anwendung öffnen, laufen tatsächlich unzählige Prozesse. Es gibt einen Prozess für die Anwendung selbst, einen weiteren für jedes Fenster, einen dritten für die Grafikverarbeitung und zahlreiche weitere Prozesse für Netzwerk, Audio und Speicherung. Wenn Sie Slack, Discord und VS Code gleichzeitig ausführen, muss Ihr Computer drei völlig separate Instanzen derselben Browser-Engine, drei separate JavaScript-Laufzeitumgebungen und drei separate Thread-Sätze gleichzeitig im Speicher verwalten.
Da sich all diese Prozesse anhäufen, verbrauchen sie schnell Ihren verfügbaren Arbeitsspeicher.
Electron unterscheidet sich von regulären Windows-Anwendungen.
Wenn Ihr Arbeitsspeicher voll ist, wird Ihr Computer ruckeln.
Es gibt weitere Gründe für den hohen Speicherverbrauch von Electron, nicht nur die nativen Windows-Frameworks sind dafür verantwortlich. Win32 ist eine ältere, ressourcenschonendere Alternative, bei der Anwendungen direkt in Maschinensprache übersetzt werden und über Systembibliotheken wie user32.dll und kernel32.dll mit dem Betriebssystem kommunizieren.
Es gibt keine verwaltete Laufzeitumgebung, keinen Garbage Collector oder Ähnliches; es besteht lediglich aus der Anwendung und dem Betriebssystem. Diese Einfachheit hält den Speicherverbrauch im Leerlauf gering. Windows Presentation Foundation fügt durch die Ausführung auf einer .NET-Laufzeitumgebung eine zusätzliche Ebene hinzu, was die Leistung jedoch nicht beeinträchtigt.
WPF vermeidet zudem die vollständige Speicherbelegung von Eigenschaften, die ihre Standardwerte beibehalten, und speichert Rendering-Strukturen im Cache, um ständige Nachbearbeitungen zu vermeiden. Dasselbe gilt für WinUI 3.
Electron hingegen ist eine ganz andere Sache. Eine typische Electron-Anwendung verbraucht im Leerlauf deutlich mehr Speicher, und wenn sie nicht optimiert ist, kann es zu Problemen kommen. Im Gegensatz zu den meisten anderen Programmen ist diese Software nicht für den Leerlaufbetrieb ausgelegt.
Die Situation verschärft sich deutlich, wenn mehrere dieser Anwendungen gleichzeitig laufen. Auf einem Laptop mit 8 GB RAM summiert sich dieser Speicherverbrauch sehr schnell. Sobald der verfügbare Arbeitsspeicher voll ist, lagert Windows die Speicherseiten von Hintergrundanwendungen in die Auslagerungsdatei auf der Festplatte aus, um Speicherplatz für die aktive Anwendung freizugeben.
Hier liegt das Problem: Sobald eine Anwendung im Hintergrund aufgerufen wird, muss Windows alle Seiten von der Festplatte in den Arbeitsspeicher laden, bevor sie wieder funktionieren kann. Dieser Lesevorgang verursacht das Ruckeln, die Verzögerungen und die kurzzeitigen Einfrierungen, die häufig beim Wechsel zwischen Electron-Anwendungen auf einem ausgelasteten System auftreten.
Der Garbage Collector des V8-Motors verschärft dieses Problem. Er durchsucht regelmäßig den Speicher, um kurz- und langfristige Objekte zu bereinigen, und dieser Scan zwingt das Betriebssystem, überschriebene Seiten von der Festplatte wiederherzustellen.
Sie können den RAM-Verbrauch (Arbeitsspeicher) von Electron reduzieren.
Es gibt leichtere Alternativen.
Die Software wird von den Entwicklern geschrieben, aber Sie als Benutzer haben dennoch verschiedene Möglichkeiten. Da Electron-Anwendungen auf Standard-Befehlszeilenbefehle reagieren, können Sie sie über ein Terminal ausführen oder ihre Desktop-Verknüpfungen anpassen, um auf bestimmte Optionen zuzugreifen.
Wenn die Anpassung der Optionen nicht ausreicht, kann der Wechsel zu einer schlankeren Software einen großen Unterschied machen. Bei Apps wie Slack oder Discord ist es am einfachsten, sie in einem Browsertab statt als Desktop-Anwendung zu nutzen. Diese Plattformen funktionieren einwandfrei über WebSockets. Wenn Sie sie also in einem bestehenden Tab öffnen, müssen Sie nicht extra eine weitere Vollversion von Chromium und Node.js laden, nur um ein Chatfenster zu starten.
Wenn Sie eine geeignete Desktop-Anwendung benötigen, sollten Sie Anwendungen in Betracht ziehen, die mit Tauri anstatt mit Electron entwickelt wurden. Tauri nutzt eine bereits auf Ihrem System vorhandene Webansicht, wodurch die Installationsgröße reduziert und der Speicherverbrauch der Anwendung minimiert wird.
Keine Sorge. Das bedeutet nicht, dass Electron-Apps schlecht designt sind oder Entwickler Fehlentscheidungen getroffen haben. Die Kompromisse, die die plattformübergreifende App-Entwicklung beschleunigen und verbilligen, sind real und für viele Teams lohnenswert. Diese Kosten schlagen sich in einer verbesserten Systemleistung nieder. Die hier genannten Optionen erfordern keine technischen Vorkenntnisse, und der Austausch einer Electron-App durch einen Browsertab oder eine Tauri-basierte Alternative kann so viel Speicherplatz freigeben, dass die Reaktionsfähigkeit des restlichen Systems deutlich verbessert wird.
Um die Speichernutzung unter Windows zu verbessern, müssen nicht alle Dienste deaktiviert oder Hintergrundprozesse beendet werden. Entscheidend ist es, Anwendungen zu identifizieren, die ohne erkennbaren Nutzen Arbeitsspeicher belegen, und diese dann mithilfe zuverlässiger Überwachungs- und Verwaltungstools gezielt anzugehen.
Wenn Ihr Gerät häufig langsam ist, sollten Sie zunächst die Speichernutzung überwachen, bevor Sie Änderungen vornehmen. Möglicherweise stellen Sie fest, dass eine einzelne Anwendung oder eine Gruppe von automatisch laufenden Programmen die eigentliche Ursache ist.







