Diese Frage hat hier bereits eine Antwort:
Der Task-Manager zeigt meine Gesamtspeicherauslastung bei 90% meiner 6 GB an, aber kein einzelner Prozess belegt mehr als 250 MB RAM, und die Summe der RAM-Auslastung aller ausgeführten Prozesse beträgt weniger als 2 GB. Ich habe es versucht:
- Anzeigen der Zahlen in der Spalte "Speicher" auf der Registerkarte "Prozesse" des Windows 8-Task-Managers.
- Anzeigen der Spalten "Arbeitssatz", "Privater Arbeitssatz", "Gemeinsamer Arbeitssatz" und "Commit-Größe" auf der Registerkarte "Details" des Task-Managers.
- Betrachten Sie ähnliche speicherbezogene Spalten im Process Explorer.
- Ich habe versucht, Sysinternals RAMMap auszuführen, aber während ich die Krise mit dem niedrigen Arbeitsspeicher habe, stürzt es beim Start ab. Sobald ich das Problem behoben habe, wird RAMMap normal ausgeführt, aber zu diesem Zeitpunkt ist es zu spät.
Alle zeigen eine ziemlich kleine Menge an verwendetem Speicher.
Es gibt viele Leute, die Varianten dieser Frage mit verschiedenen Windows-Versionen über das Internet stellen. Einige von ihnen schaffen es, ihre Probleme mit geringem Arbeitsspeicher zu lösen, häufig durch Neuinstallation von Software. manchmal durch Neuinstallation von Windows von Grund auf neu. Ich suche nach einer Antwort auf die allgemeinen Fragen, die diese alle gemeinsam haben und die an keiner anderen Stelle beantwortet zu werden scheinen:
- Warum ist der insgesamt belegte Speicher viel höher als der von allen aufgelisteten Prozessen belegte Speicher, unabhängig davon, wie ich versuche, sie zu zählen?
- Wie könnte Windows "wissen", dass Speicher verwendet wird, ohne zu wissen, welches Programm es verwendet?
- Welche Prozesse verbrauchen möglicherweise Speicher, werden aber nicht in der Liste angezeigt?
- Gibt es eine Software, die weitere Informationen zum verwendeten Speicher liefert?
Spezifische Details zu meinem eigenen Problem: Seit dem Upgrade auf Windows 8.1 tritt das Problem auf, sobald ich mich anmelde. Sobald ich ein Programm ausgeführt habe, ist mir der Speicher erschöpft. Ich habe im Process Explorer festgestellt, dass mehrere Instanzen von iexplore.exe ausgeführt wurden und anscheinend automatisch gestartet wurden. In einer bestimmten Instanz wurden nur wenige MB RAM verwendet, es traten jedoch Hunderte Millionen Seitenfehler auf. Aus einer Laune heraus habe ich diesen bestimmten Prozess beendet und die Speichernutzung ging sofort um 70% zurück.
Führt zu einer bestimmten Frage:
- Wie könnte man einen Prozess beenden, der angeblich nur ein paar MB verbraucht, um mehrere GB freizugeben?
Und eine (vermutlich harte) Bonusfrage:
- Wie kann ich nach der Neuinstallation von Windows vermeiden, dass ich jedes Mal, wenn ich meinen Computer neu starte, dies durchlaufen muss?
quelle
Antworten:
Übrigens sollten Sie versuchen, den Begriff "Gedächtnis" nicht zu verwenden. Es schafft viel Verwirrung. Wenn Sie physischen Speicher meinen, sagen Sie "physischer Speicher" oder "RAM". Wenn Sie virtuellen Speicher meinen, sagen Sie es. Sagen Sie es, wenn Sie das Hinterlegen eines Speichers meinen.
Weil das Betriebssystem keinen physischen Speicher (RAM) verschwendet, es sei denn, es hat keine andere Wahl.
Weil kein Programm es benutzt. Betrachten Sie beispielsweise den Speicher, der den Code für ein Programm enthält, das gerade beendet wurde. Kein Programm benutzt es. Dieser Speicher wird jedoch verwendet, da er nicht frei ist und möglicherweise nützliche Daten enthält (falls das Programm erneut ausgeführt wird).
Es wird nicht von Prozessen verwendet.
RAMMap kann das.
Es gibt nur zwei Möglichkeiten, RAM kann verwendet werden oder es kann verschwendet werden. Offensichtlich ist das erste besser. Jeder freie Speicherplatz wird für immer verschwendet - ein 4-GB-Computer kann heute nicht 2 GB verwenden, um morgen 6 GB zu nutzen. Wenn Sie denken "Ich möchte es jetzt kostenlos, damit ich es später verwenden kann", vergessen Sie das. Sie können es jetzt und später verwenden.
Ihnen geht der Backup-Speicher aus, nicht der physische Speicher. Sie haben genügend freien physischen Speicher, aber nicht genügend Sicherungsspeicher für das Betriebssystem, um weiterhin virtuellen Speicher zuzuweisen, für den möglicherweise eine Sicherung erforderlich ist.
Der Prozess verwendete nur wenige MB physischen Speicher, aber das Betriebssystem musste möglicherweise mehrere GB gesicherten virtuellen Speicher dafür reservieren. Angenommen, ein Prozess erstellt eine beschreibbare Zuordnung des privaten Speichers einer 2-GB-Datei. Das Betriebssystem muss 2 GB gesicherten virtuellen Speicher für den Prozess reservieren, da möglicherweise in jedes einzelne Byte dieser Zuordnung geschrieben wird. Außerdem könnte es niemals einem von ihnen schreiben. Aus diesem Grund benötigen Sie eine große Auslagerungsdatei.
Moderne Betriebssysteme schreiben viele Schecks (vielversprechender Backing Store), die niemals eingelöst werden (RAM erforderlich). Sie können keine Schecks mehr ausstellen (vielversprechender Backing Store), auch wenn Sie über genügend Geld auf der Bank verfügen (freier Arbeitsspeicher), wenn Sie bereits eine Reihe großer Schecks ausgestellt haben, die möglicherweise eingelöst werden (vielversprechender Backing Store) wie Sie). Auslagerungsdateien fügen einen Sicherungsspeicher hinzu, sodass das Betriebssystem weiterhin Prüfungen schreiben kann.
quelle