Probleme mit Speicherleck und Windows



  • Ich hoffe mal, dass dies das richtige Forum dafür ist...
    Ich habe ein Programm geschrieben, dass bestimmte Seiten im Internet regelmäßig herunterlädt. Irgendwo gibt es ein Speicherleck, das ich bisher auch nach allen Anstrengungen noch nicht ausfindig machen konnte. Das Speicherleck an sich wäre kein so großes Problem, da es sich nicht um wirklich viel verlorenen Speicher handelt.
    Das Problem ist, wenn das Programm schon seit längerem läuft, dann dauert es manchmal mehrere Minuten, bis zwischen zwei Fenstern mit Alt+Tab gewechselt wird. Vor allem bei Fullscreen-Spielen passiert das gerne, beim Zurückwechseln zum Spiel stürzt es dadurch in der Regel ab. Auch der Rest der Windowsoberfläche und alle Programme reagieren recht träge. Wenn mein Programm nicht oder erst seit kurzem läuft, ist alles normal. Das Programm selbst braucht fast keine CPU-Ressourcen, daran sollte es also nicht liegen.
    Weiterhin, wenn ich versuche, mein Programm zu beenden, dann friert der Computer für mehrere Minuten ein (es läuft nur auf normaler Priorität) und zwar komplett, nicht einmal der Mauszeiger bewegt sich noch. Je länger es lief, desto länger dauert das auch.
    Hat irgendjemand eine Idee, woran das liegen könnte? Vielleicht eine Eigenart des Speicher-Managements von Windows? Um das Problem beheben zu können, muss ich erstmal wissen, woran es liegt.
    Wäre für Antworten dankbar 🙂

    *Edit*
    Es liegt wohl auch nicht etwa daran, dass ich zu wenig Arbeitsspeicher habe. Ich achte immer darauf, dass der zugewiesene Speicher aller Programme meine RAM-Größe nicht übersteigt. Und wenn das System einfriert, dann arbeitet die Festplatte auch nicht, das sind also keine Folgen von Disk-Swapping.



  • Hmm, die Symptome hören sich aber irgendwie schon nach Arbeitsspeicher voll und rödelei mit Auslagerungsdatei an.

    Keine Auffälligkeiten bei der Spalte "Speicherauslastung" im Taskmanager (unter Prozesse - notfalls "Ansicht" - "Spalten auswählen...") ?
    oder bei der Auslagerungsdatei ?



  • Nein, das ist es ja. Es ist noch genug physikalischer RAM frei und die Festplatte arbeitet kaum, also auch nicht beim Fenster wechseln und beim Beenden von dem Programm, das den Ärger verursacht...



  • Windows lagert angeblich auch aus, wenn der Speicher noch nicht voll ist. Ein nicht voller Speicher ist also kein Kriterium dafür, daß nichts ausgelagert sein kann.
    Schau dir einfach mal im Taskmanager die Speichernutzung deines Programms an. Dann kannst du vielleicht eher entscheiden, wie kritisch das Speicherleck wirklich ist.
    Was sagt eigentlich die CPU-Auslastung beim Beenden bzw. Fenster wechseln?

    Wenn du das Programm mit dem Taskmanager z.B. jede Stunde startest und beendest, kommt es nicht zu "langen" Laufzeiten. Das könnte zumindest das Symptom behandeln.



  • Naja, wie gesagt, es scheint zwar zu stimmen, dass Windows automatisch manche Seiten des Programms auslagert. Aber beim Fensterwechseln und Beenden des Programms wird nicht auf diese Seiten zugegriffen, da es keine bzw. fast keine Festplattenaktivität gibt. Das Speicherleck ist auch nicht so groß, frühestens nach einer Woche wird der Speicherverbrauch kritisch.
    Das eigentlich Merkwürdige beim Beenden des Programms ist, dass der Computer komplett für einige Zeit einfriert. Es tut sich nichts mehr, nicht mal der Mauszeiger reagiert noch. Deswegen lässt sich auch schlecht sagen, wie stark die CPU derweil ausgelastet ist. Ich habe allerdings den Stromverbrauch des Computers gemessen und er liegt während dieser Phase ungefähr zwischen Ruhe und Volllast. Also scheint die CPU etwas zu tun.
    Und klar, das regelmäßige Neustarten des Programms ist für mich im Moment die einzige Lösung. Aber das geht nicht immer, ich bin machmal für ein paar Tage nicht da. Und die ganze Sache scheint auch andere automatisch ablaufende Programme zu stören, was sich in eigenartigen Fehlermeldungen in den Log-Dateien wiederspiegelt.


Anmelden zum Antworten