Wie kann Speicher freigegeben werden, der einen Prozess vollständig in den Ruhezustand versetzt?

10

Ähnlich wie folgt: Wie kann man einen Prozess unter Linux / Windows "in den Ruhezustand versetzen"?

Gibt es Methoden, um einen Prozess so in den Ruhezustand zu versetzen, dass er nicht im Speicher bleibt? Beispiel: Wenn ich Firefox nicht verwenden und den Prozess nicht schließen möchte und freien Speicher benötige, wie kann ich den Prozess dann wirklich in den Ruhezustand versetzen, damit der von Firefox reservierte Speicher freigegeben wird?

Ich brauche eine Lösung für Windows und Linux!

LanceBaynes
quelle

Antworten:

4

Wenn ich Firefox nicht verwenden und den Prozess nicht schließen möchte und freien Speicher benötige, wie kann ich den Prozess dann wirklich in den Ruhezustand versetzen, damit der von Firefox reservierte Speicher freigegeben wird?

Für Windows gibt es Free Process Freezer .

Für Linux und Mac OS X gibt es CrypoPID , wie in der Antwort von yeedl erwähnt .


Wenn Sie eine benutzerdefinierte Lösung finden möchten:

Schauen Sie sich process dumpingWindows an, z. ProcDump , setzen Sie es mit einem CLI-Debugger von WinDBG fort .

Schauen Sie sich core dumpingLinux an, z. Kern , setzen Sie es mit einem CLI-Debugger wie GNU GDB fort .

Ich wette, eine softwarebasierte Lösung ohne Debugger ist möglich, aber das ist für Stack Overflow .


Sie suchen nach einem ganz bestimmten Anwendungsfall. Warum nicht einfach aussetzen und austauschen lassen?

Sie würden mehr Zeit damit verbringen, Ihre Prozesse zum Laufen zu bringen und auszusetzen ...

Ich glaube, Sie können Ihren Workflow auf eine andere Weise optimieren, die nahtloser wäre.

Tamara Wijsman
quelle
5

Sowohl Windows als auch Linux / Unix bieten eine Möglichkeit, die Ausführung eines Prozesses anzuhalten oder zu stoppen, indem Sie ihn aus der Liste der ausführbaren Prozesse entfernen.

Dies wirkt sich nicht direkt auf die Speicherseiten eines Prozesses aus. Mit der Zeit sind diese Seiten jedoch gute Kandidaten für den Austausch auf die Festplatte, da das System unter Speicherdruck gerät.

Der Versuch, einen Prozess zur späteren Wiederaufnahme auf die Festplatte zu schreiben, funktioniert für nichts Nicht-Triviales. Offene Handles für das Netzwerk und das Fenstersystem schlagen fehl, sobald der Prozess fortgesetzt wird.

Phil
quelle
Es würde auch für nichts Triviales funktionieren. :) +1
user541686
1
Diese offenen Griffe werden einfach wieder geöffnet oder zusammen aufbewahrt, so dass das eigentlich kein Problem ist ...
Tamara Wijsman
2

Ich weiß, dass Sie in Firefox eine Sitzung speichern können.

Unter Linux kann dies mit CrypoPID erfolgen .

Diese und diese Frage versuchen, sie für Windows zu beantworten, aber ich konnte keine großartige Lösung finden, um einen Anwendungsstatus in einer Datei zu speichern, wie ich es für Linux getan habe.

yeedl
quelle
1

Für Windows:

Ich kenne keine Möglichkeit, einen Prozess vollständig aus dem Speicher zu entfernen, ohne ihn zu beenden, aber Sie können seinen Arbeitssatz kürzen, indem Sie sein Hauptfenster minimieren. Microsoft hat einen Artikel, der dies erklärt: Der Arbeitssatz einer Anwendung wird gekürzt, wenn das Fenster der obersten Ebene minimiert wird .

Minimieren Sie also zuerst die Hauptfenster und unterbrechen Sie dann den Vorgang, wie in der von Ihnen verknüpften Frage vorgeschlagen .

Beides können Sie mit dem stets nützlichen Process Explorer erreichen .

  • Klicken Sie mit der rechten Maustaste auf Prozess - Fenster -> Minimieren
  • Klicken Sie erneut mit der rechten Maustaste auf Anhalten.
Hugh Allen
quelle
1

Unter Windows können einige Programme "nicht verwendeten" Programmspeicher austauschen.
Ein Beispiel für ein Produkt, das dies kann, ist das kommerzielle Process Lasso .
Allerdings rät sogar Process Lasso von dieser Praxis ab.

Aus der Wahrheit über Windows-Speicheroptimierer :

Überlassen Sie die Verwaltung des virtuellen Speichers am besten Windows und nehmen Sie ihn nicht selbst in die Hand. Jeder Nutzen dieser Programme ist eine Illusion und vorübergehend. Sie müssen früher oder später mit dem Paging-Speicher rechnen, auch wenn das Programm, das Sie nach der Bereinigung ausführen, schneller geladen wird.

Informationen zu Firefox finden Sie in MozillaZines Reduzieren der Speichernutzung - Firefox . Dort finden Sie viele Ratschläge, wie Sie feststellen können, bei welchen Erweiterungen Speicher verloren geht.

Es gibt auch die Firefox-Erweiterung Memory Fox, die:

Der Versuch, die RAM-Speichernutzung des Browsers zu reduzieren, fördert die Erhöhung der verfügbaren RAM-Speicher für andere Anwendungsprozesse. RAM-Speicheranforderungen. Hoffentlich fördern Sie alle Versuche der Speicherwiederherstellung und -speicherung.

Nach meiner Erfahrung verschiebt diese Erweiterung nur das unvermeidliche Aufblähen von Firefox. Die einzige wirkliche Lösung besteht darin, Firefox von Zeit zu Zeit zu schließen, um Speicher freizugeben.

harrymc
quelle
1

Sie können das STOP-Signal an Prozesse unter Linux senden. Ein gestoppter Prozess ist wie angehalten . Um es fortzusetzen, senden Sie das Signal CONT des Prozesses. Um das Signal zu senden, können Sie Folgendes tun:

kill -STOP process_id

kill -CONT process_id

Ein gestoppter Prozess wird ausgelagert, wenn das System mehr Speicher benötigt.

Xolve
quelle