Elemente einer list gelöscht, Speicher wird aber nicht freigegeben



  • Hallo!

    Ich habe eine list die sehr viele Elemente aufnimmt, diese werden nach und nach gelöscht. Nach jedem Löschvorgang lasse ich mir die Größe ausgeben:

    20000000
    5 Sekunden "Wartezeit" durch andere Funktionen
    13000000
    5 Sekunden "Wartezeit" durch andere Funktionen
    10000000
    5 Sekunden "Wartezeit" durch andere Funktionen
    9000000
    5 Sekunden "Wartezeit" durch andere Funktionen
    5000000
    5 Sekunden "Wartezeit" durch andere Funktionen
    300000
    5 Sekunden "Wartezeit" durch andere Funktionen
    0

    Der der Speicher, den diese Elemente belegt haben, wird nicht gleichzeitig freigegeben, erst ganz am Ende sehe ich im Taskmanager wie der Speicherverbrauch von 200 mb auf 6 sinkt. Es wäre aber viel besser wenn er gleich freigegeben wird, lässt sich das realisieren?



  • Ohne genau zu wissen was Du da treisbt...

    Lösch die Elemente und mach nen swap mit einer leeren Liste.



  • Ich glaub du hast meine Frage falsch verstanden 💡

    Ich habe eine Liste mit strings, diese List kann sehr sehr sehr sehr sehr groß werden. Nun werden Funktionen auf die Liste angewendet, es werden nach und nach Elemente (strings) gelöscht. Jetzt wird komischerweise die Speicherauslastung nicht kleiner je mehr Elemente ich lösche, erst ganz am Ende wenn das Programm beendet wird wird alles freigegeben. Und das stört doch sehr, weil so unnötig viel Ram belegt wird.



  • In den meisten Fällen wissen deine STL-Implementierung und dein Betriebssystem besser, wann Speicher freigegeben soll. Wenn du also keine konkreten Probleme hast, dann lass es, wie es ist. Auf die Angaben des Taskmanagers darfst du sowieso nichts geben.


Anmelden zum Antworten