Ich arbeite unter Windows 7 x64 mit 4-Kern Intel i7 und 8 GB RAM, aber in letzter Zeit scheint sich der "RAM" meines Computers ausschließlich auf der Festplatte zu befinden.
Der Task-Manager zeigt Folgendes:
Die Gesamtmenge an Speicher, die von den Prozessen in der Liste verwendet wird, beträgt nur etwa 1 GB. Und was seit einigen Tagen auf meinem Computer passiert, ist, dass ein Programm (Cataloger.exe) kontinuierlich große Mengen von Dateien (jeweils ca. 5-10 MB) verarbeitet und diese zum Zwecke der Katalogisierung wiederholt öffnet und liest. Aber es wächst nicht zu viel im Speicher und bleibt ungefähr so groß, 100 MB. Die Datenmenge, die beispielsweise in 30 Minuten verarbeitet wird, kann jedoch in Gigabyte gemessen werden.
Meine Vermutung war also, dass das Zwischenspeichern von Windows-Dateien etwas damit zu tun hat. Und nach einigen Recherchen zu diesem Thema bin ich auf dieses Programm namens RamMap gestoßen, das detaillierte Informationen zum RAM eines Computers anzeigt. Hier ist der Screenshot:
Für mich sieht es so aus, als würde Windows riesige Datenmengen im RAM speichern, die nicht mehr benötigt werden, und alle RAM-Zuweisungsanforderungen an die Auslagerungsdatei auf der Festplatte umleiten. Selbst wenn ich Cataloger.exe schließe, meldet die RamMap die Größe der zugeordneten Datei für eine lange Zeit ungefähr gleich. Und es ist nicht nur dieses spezielle Programm. Früher bemerkte ich, dass eine ähnliche Verlangsamung nach einigen massiven Dateivorgängen mit anderen Programmen auftrat. Es ist also wirklich kein außergewöhnliches Verhalten von Cataloger.exe und das Problem hat sich in der Vergangenheit oft manifestiert.
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 denkst du, versteckt sich das Problem im Datei-Caching oder woanders? Wie löse ich es?
Antworten:
Dies ist wie gewohnt und alles funktioniert einwandfrei. Windows speichert zwischengespeicherte Dateien nicht gegenüber anderen Daten im Speicher. Zwischengespeicherte Dateien bedeuten, dass Windows sie zu einem bestimmten Zeitpunkt in den Speicher laden oder von der Festplatte lesen musste und seitdem keine höhere Priorität mehr vorhanden ist. Sobald Sie den Computer wieder verwenden und Programme Speicher anfordern, entfernt Windows die zwischengespeicherten Dateien gerne, 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 gespeichert werden, da Windows sie in der Vergangenheit benötigt hat, sie möglicherweise erneut benötigt und sie recht gerne verwirft wenn etwas anderes tatsächlich den Raum braucht.
Grundsätzlich sehen Sie hier, dass Ihr Programm das Laden einer großen Datendatei anfordert, sodass Windows diese in den Speicher lädt. Das Verwalten von Speicher ist ein sehr komplexer Prozess, und was Windows hier unter dem Deckmantel tut, ist ein Urteil: Es betrachtet die aktuellen Prozesse und stellt fest, dass Chrome beispielsweise 5 GB Speicher belegt (viele Registerkarten!), Aber dass der größte Teil dieser Erinnerung in der letzten Stunde nicht berührt wurde. Zu diesem Zeitpunkt hat es die Wahl: Es kann Chrome im Speicher belassen und die Dateien nicht zwischenspeichern. Dies bedeutet, dass der Katalogisierungsprozess Stunden statt Minuten dauern kann, um eine Datei zu verarbeiten, insbesondere wenn sie häufig in der Datei herumspringt. oder es kann die Chrome-Registerkarten ausblenden und die Cataloger-Datei in den Speicher laden und diesen Vorgang schnell abschließen.
Jetzt werden Sie den Schmerz spüren, wenn Windows Chrom wieder in den Speicher verschieben muss, aber Windows wird dies erst tun, wenn Sie es anfordern (dh Chrom wieder in den Vordergrund bringen und eine Registerkarte auswählen, die ausgelagert wurde), und was Letztendlich muss von Ihnen bewertet werden, ob der Schmerz größer oder kleiner ist als der Schmerz Ihrer Cataloger-Aufgabe, die auf ihren Speicher warten muss. Sie können versuchen, das Programm als Dienst auszuführen und Windows anzuweisen, die Reaktionsfähigkeit zu optimieren oder die Prozesspriorität zu senken. Ich bin mir jedoch ziemlich sicher, dass der Cataloger-Prozess so schnell wie möglich abgeschlossen werden soll Es maximiert Ihre Festplatten-E / A, Ihr gesamtes System wird unglaublich träge. Alles, was Festplatten-E / A erfordert, wird in eine Warteschlange gestellt (sogar Webbrowsing - es hat auch einen Cache, den es verwendet!). Programme werden langsam geöffnet,
Wenn das Programm nur Datei für Datei nacheinander liest und sie dann nicht erneut berührt, stimme ich zu, dass Windows die Dateien nicht zwischenspeichern muss. Das Problem hier ist, dass Windows das nicht weiß, weil niemand sagt, dass sie nicht zwischengespeichert werden müssen.
Wenn Sie Zugriff auf den Quellcode für das Cataloger-Programm haben (oder Änderungen daran anfordern können), kann dieser so konfiguriert werden, dass Dateien mit geöffnet
FILE_FLAG_NO_BUFFERING
werden. Dadurch überspringt Windows den Festplatten-Cache für Dateien, die vom Programm auf diese Weise geöffnet wurden .Wenn dies keine Option ist, würde ich mich umsehen, ob ein Ersatzcomputer nicht verwendet wird und ob er als dedizierter Computer eingerichtet werden kann, es sei denn, der Cataloger-Prozess muss auf Ihrem System ausgeführt werden zum Katalogisieren dieser Dateien. Wenn es noch keinen gibt, kann das einfache Erhöhen des Arbeitsspeichers eine weitere Option sein. Die Speicherpreise sind heutzutage recht günstig, und Entwickler wissen dies - die meisten Dinge sind auf Kosten des Speichers auf Geschwindigkeit und Reaktionsfähigkeit optimiert. 8 GB sind nicht mehr das, was es früher war.
Eine andere Möglichkeit besteht darin, alle verwendeten Dateien auf eine separate Festplatte zu verschieben und das Festplatten-Caching für dieses Laufwerk speziell zu deaktivieren.
quelle
Ich hatte genau das gleiche Problem, es ist ein Prozess namens "Intellimem.exe". Ich habe es gelöscht und KABOM! von 80% der RAM- und Auslagerungsdatei bis zu keiner Auslagerungsdatei und 20% der RAM-Auslastung! und ich habe keine probleme.
quelle