
Ich verwende Windows 7 x64 mit einem 4-Core Intel i7 und 8 GB RAM, aber in letzter Zeit fühlt es sich an, als ob sich der „RAM“ meines Computers ausschließlich auf der Festplatte befindet.
Folgendes wird im Task-Manager angezeigt:
Der Gesamtspeicherbedarf der Prozesse in der Liste beträgt knapp 1 GB. Und seit einigen Tagen passiert auf meinem Computer, dass ein Programm (Cataloger.exe) kontinuierlich große Mengen von Dateien (jeweils etwa 5-10 MB) verarbeitet und diese wiederholt öffnet und liest, um sie zu katalogisieren. Der Speicherbedarf wächst jedoch nicht zu sehr und bleibt bei dieser Größe, also bei 100 MB. Die Datenmenge, die es in, sagen wir, 30 Minuten verarbeitet, kann jedoch in Gigabyte gemessen werden.
Ich vermutete also, dass die Dateizwischenspeicherung in Windows etwas damit zu tun hat. Und nach einigen Recherchen zu diesem Thema stieß ich auf dieses Programm namens RamMap, das detaillierte Informationen zum RAM eines Computers anzeigt. Hier ist der Screenshot:
Für mich sieht es also so aus, als ob Windows riesige Datenmengen im RAM behält, die nicht mehr benötigt werden, und alle RAM-Zuweisungsanforderungen an die Auslagerungsdatei auf der Festplatte umleitet. Selbst wenn ich Cataloger.exe schließe, meldet RamMap die Größe der zugeordneten Datei noch lange Zeit als ungefähr gleich. Und es ist nicht nur dieses spezielle Programm. Früher habe ich bemerkt, dass nach einigen massiven Dateioperationen mit anderen Programmen eine ähnliche Verlangsamung auftrat. Es handelt sich also wirklich nicht um ein außergewöhnliches Verhalten von Cataloger.exe und das Problem trat in der Vergangenheit schon oft auf.
Was auch immer es ist, es verlangsamt den Computer um das 50-fache. Das Öffnen eines neuen Tabs in Chrome dauert 20 bis 30 Sekunden, das Öffnen eines neuen Programms kann bis zu einer Minute dauern. Aufgrund der Verlangsamung stürzen einige Programme sogar ab.
Was meinen Sie also, liegt das Problem im Datei-Caching oder woanders? Wie kann ich es lösen?
Antwort1
Dies ist ganz normal und alles funktioniert einwandfrei. Windows hält keine zwischengespeicherten Dateien im Speicher über anderen Daten - Zwischengespeicherte Dateien bedeuten, dass Windowshatteum sie in den Speicher zu laden oder von der Festplatte zu lesen, und etwas mit höherer Priorität ist seitdem nicht mehr dazugekommen. Sobald Sie den Computer wieder verwenden und Programme Speicher anfordern, entfernt Windows die zwischengespeicherten Dateien, um Platz zu schaffen.
Wenn Sie sich RAMMap ansehen, werden Sie feststellen, dass die meisten dieser zwischengespeicherten Dateien unter "Standby" zugewiesen sind. Dies bedeutet, dass sie im Speicher gehalten werden, weil Windows sie in der Vergangenheit benötigt hat, sie möglicherweise erneut benötigt und sie problemlos verwerfen wird, wenn etwas anderesGenau genommenbraucht den Platz.
Im Grunde sehen Sie hier, dass Ihr Programm das Laden einer großen Datendatei anfordert, sodass Windows sie in den Speicher lädt. Die Verwaltung des Speichers ist ein sehr komplexer Prozess, und was Windows hier im Hintergrund tut, ist, eine Entscheidung zu treffen: Es sieht sich die aktuellen Prozesse an und sieht, dass Chrome beispielsweise 5 GB Speicher belegt (viele Tabs!), aber dass der größte Teil dieses Speichers in der letzten Stunde nicht angerührt wurde. An diesem Punkt hat es eine Wahl: Es kann Chrome im Speicher belassen und die Dateien nicht zwischenspeichern. Das bedeutet, dass der Katalogisierungsprozess Stunden statt Minuten brauchen könnte, um eine Datei zu verarbeiten, insbesondere wenn er viel in der Datei hin und her springt; oder es kann die Chrome-Tabs auslagern und die Katalogisierungsdatei in den Speicher laden und diesen Prozess schnell beenden.
Sie werden es jetzt schmerzlich spüren, wenn Windows Chrome wieder in den Speicher auslagern muss, aber Windows tut das nicht, bis Sie es anfordern (d. h. Chrome wieder in den Vordergrund bringen und eine Registerkarte auswählen, die ausgelagert wurde), und Sie müssen letztendlich beurteilen, ob der Schmerz größer oder kleiner ist als der Schmerz, dass Ihre Cataloger-Aufgabe auf den Speicher warten muss. Sie können versuchen, das Programm als Dienst auszuführen und Windows anzuweisen, die Reaktionsfähigkeit zu optimieren, oder versuchen, die Prozesspriorität zu senken, aber ich bin mir ziemlich sicher, dass Sie wollen, dass der Cataloger-Prozess so schnell wie möglich fertig wird – während er Ihren Festplatten-E/A maximal auslastet, wird Ihr gesamtes System unglaublich langsam sein. Alles, was Festplatten-E/A erfordert, wird in eine Warteschlange gestellt (sogar das Surfen im Internet – es hat auch einen Cache, den es verwendet!). Programme werden langsam geöffnet, neue Registerkarten werden schnell geöffnet, aber die tatsächliche Verwendung für etwas wird langsam sein.
Wenn das Programm einfach eine Datei nach der anderen liest und sie dann nicht mehr anfasst, stimme ich zu, dass Windows die Dateien nicht zwischenspeichern muss. Das Problem dabei ist, dass Windows das nicht weiß, weil ihm niemand sagt, dass sie nicht zwischengespeichert werden müssen.
Wenn Sie Zugriff auf den Quellcode des Cataloger-Programms haben (oder Änderungen daran anfordern können), kann es so konfiguriert werden, dass Dateien mit geöffnet werden. FILE_FLAG_NO_BUFFERING
Dadurch überspringt Windows den Festplattencache für Dateien, die vom Programm auf diese Weise geöffnet werden.
Wenn das nicht möglich ist, dann, es sei denn, der Katalogisierungsprozesshatauf Ihrem System ausgeführt werden soll, würde ich mich umsehen, ob es einen freien Computer gibt, der nicht verwendet wird, und prüfen, ob er als dedizierte Maschine zum Katalogisieren dieser Dateien eingerichtet werden kann. Wenn es noch keinen gibt, könnte eine einfache Erhöhung Ihres RAM eine weitere Option sein; Speicherpreise sind heutzutage ziemlich niedrig, und Entwickler wissen das – die meisten Dinge werden auf Geschwindigkeit und Reaktionsfähigkeit optimiert, auf Kosten des Speichers. 8 GB sind nicht mehr das, was sie einmal waren.
Eine andere Möglichkeit besteht darin, alle verwendeten Dateien auf eine separate Festplatte zu verschieben und das Festplatten-Caching für diese Festplatte zu deaktivieren.
Antwort2
Ich hatte genau das gleiche Problem, es ist ein Prozess namens „intellimem.exe“. Ich habe ihn gelöscht und KABOM! Von 80 % RAM und Auslagerungsdatei zu keiner Auslagerungsdatei und 20 % RAM-Nutzung! Und ich habe keine Probleme.