Wie man den Speicher in Windows sofort wieder von der Auslagerungsdatei in den physischen Speicher „einlagert“ (wie das Auslagern von Linux)

10

Gibt es eine Möglichkeit, den Speicher eines Windows-PCs wieder einzutauschen (um alle Speicherdaten, die in die Auslagerungsdatei eingefügt wurden (oder auszutauschen, was auch immer Sie bevorzugen))?

Unter Linux kann man dies leicht mit dem Swapoff / dev / sdaX tun, wobei X die Swap-Partition ist. Unter Windows scheint es mich zu bitten, jedes Mal neu zu starten.

Der Grund, warum ich dies tun möchte, ist, dass, obwohl das Auslagern der Daten in die Auslagerungsdatei es mir ermöglicht, ein ressourcenhungriges Spiel vollständig im physischen RAM zu spielen, alle anderen meiner Programme ausgeführt werden, wenn ich das Spiel stoppe schleppend. Dies ist oder natürlich normal; Alle Programme wurden in die Auslagerungsdatei verschoben, weil mein RAM zu klein war und der gesamte Speicherzugriff auf diese Programme nach dem Spielen auf harte Seitenfehler stieß, was zu erheblichen Verzögerungen und einigen Frustrationen führte.

Diese Frustration könnte jedoch leicht vermieden werden, indem der PC einfach alle Daten für etwa eine Minute in den physischen Speicher zurückkopieren und dann die Arbeit an einem schnell arbeitenden PC wieder aufnehmen kann! (anstatt die Langsamkeit während der Arbeit ertragen zu müssen)

Vielen Dank im Voraus für jeden Rat dazu!

Mit freundlichen Grüßen

Arnout
quelle
Was Sie wollen, ist ein "Hypervisor", auf dem mehrere Windows-Kopien ausgeführt werden. Sie setzen einen aus und heben den anderen auf. Dies wird mit anderen Systemen ziemlich oft gemacht, aber ich bin mir nicht sicher, ob es einen Hypervisor gibt, der dies für Windows durchführen kann.
Daniel R Hicks

Antworten:

6

Unglücklicherweise nicht. So wie das virtuelle Windows-Speichersystem funktioniert, können viele der Seiten erst nach einem Fehler zugeordnet werden und können nur dann im Speicher gespeichert werden, wenn sie zugeordnet sind. Windows muss also warten, bis auf die Seiten zugegriffen wird.

David Schwartz
quelle
Vielleicht könnte ein ausreichend privilegierter Prozess eines Drittanbieters versuchen, auf diese Seiten zuzugreifen, damit sie Fehler machen?
Badp
Es würde einem anderen Prozess nicht viel nützen, auf die Seiten zuzugreifen. Sie müssen in den Prozessen für die Apps, die Sie verwenden möchten, fehlerhaft sein.
Jamie Hanrahan
Kommen Sie und denken Sie darüber nach, es könnte getan werden ... irgendwie. Sie müssten einen Remote-Thread in den Zielprozess einfügen. Dieser Thread würde dann VirtualQuery im Adressraum ausführen und dann einfach jede prozessprivate Seite lesen. Es gibt jedoch keine Möglichkeit, zwischen Seiten zu unterscheiden, die sich im RAM befanden und später ausgelagert wurden, und Seiten, die überhaupt nicht ausgelagert wurden. Es gibt auch keine Möglichkeit, Seiten zu identifizieren, die der Prozess nie wieder benötigt. Sie würden also eine Menge Dinge einblättern, die Sie nicht mussten.
Jamie Hanrahan
@ JamieHanrahan Es klingt so, als würde das funktionieren.
David Schwartz
1

Leider gibt es keine solche Option.

Die einzige Möglichkeit, das Auslagern in Windows zu verringern, besteht darin, den physischen Arbeitsspeicher zu erhöhen.

harrymc
quelle
Oder deaktivieren Sie den Swap vollständig. Nicht unbedingt eine Windows-Sache, aber auf meinen Linux / BSD-Maschinen deaktiviere ich alle Formen des Rotationstauschs, weil es nicht gut ist, und wenn die Dinge anfangen, es zu benutzen, verlangsamen sie alles, anstatt ein hartes Limit zu erreichen.
Killermist
1
Durch Deaktivieren der Auslagerungsdatei wird das Paging auf die Festplatte nicht deaktiviert. Es wird nur das Auslagern des privaten festgeschriebenen Adressraums deaktiviert. Der Inhalt der Speicherzuordnung wird weiterhin ein- und ausgelagert.
Jamie Hanrahan