Speicher frei nach Minimize Restore



  • Hi

    Weis nicht ob das jetzt hierher gehört..
    Ich hab eine Anwendung mit SDL, stelle ein paar Bilder dar.
    Hab jetzt noch nicht probiert, ob das mit Standard Windows oder DirectX Anwendungen auch so ist.
    Wenn ich das Prgramm starte hat es zirka 9000K (laut Taskmanager).
    Wenn ich das Fenster einmal minimiere und wiederherstelle, hat es noch knapp die hälfte..wie kommt das?
    Wird Speicher freigegeben beim Minimieren? 😕

    thx



  • Bei einer DX9 Anwendung sind es nach dem Restore noch knapp 10% 😮



  • Was Du per Default im Task-Manager siehst ist das "Working-Set". Also der Teil Deines Programmes, welcher im physikalischen Speicher liegt. Und das kann sich bei einem VM OS ja jederzeit ändern. Also: Vergiss diesen Eintrag aus dem Task-Manager und lass Dir die Spalte "Größe des virtuellen Speichers" einblenden (Extras|Spalen Auswählen...). Dann wird der "tatsächliche" Speicher Deiner Anwendung angezeigt.



  • ok thx

    der virtuelle speicher bleibt konstant, tatsächlich.
    Wieso wird den eine app. die minimiert wird aus dem PM in den VM geschoben? Und warum bei Restore nicht wieder zurückgeholt?

    Na egal..



  • 1310-Logik schrieb:

    Wieso wird den eine app. die minimiert wird aus dem PM in den VM geschoben?

    Wenn eine App minimiert wird, geht das OS davon aus, das es (vorerst) nicht mehr gebraucht wird. Deswegen wird das Working-Set "getrimmt" (siehe SetProcessWorkingSet)

    1310-Logik schrieb:

    Und warum bei Restore nicht wieder zurückgeholt?

    Was soll er dann wieder in den Speicher holen? Nach welchen kriterien sollte er vorgehen?



  • Jochen Kalmbach schrieb:

    1310-Logik schrieb:

    Wieso wird den eine app. die minimiert wird aus dem PM in den VM geschoben?

    Wenn eine App minimiert wird, geht das OS davon aus, das es (vorerst) nicht mehr gebraucht wird. Deswegen wird das Working-Set "getrimmt" (siehe SetProcessWorkingSet)

    1310-Logik schrieb:

    Und warum bei Restore nicht wieder zurückgeholt?

    Was soll er dann wieder in den Speicher holen? Nach welchen kriterien sollte er vorgehen?

    kA...ich kenn mich mit OS und Speicherverwaltung nicht wirklich aus. Interessierte mich nie genug dafür. (sagte ich, dass ich keine Informatik studiere..?)
    Aber ist nicht so wichtig..
    ich dachte nur es bringt mir freien Speicher, wenn ich minimiere und wiederherstelle, dann könnte man das ja ins Programm selber einbauen.
    Aber ist wohl das Gegenteil der Fall, da der Zugriff auf den VM wohl langsamer ist.



  • am besten 'SetProcessWorkingSetSize' immer mal wieder aufrufen um das working set klein zu halten. vielleicht so in 5 sekunden abständen.



  • net|_work schrieb:

    am besten 'SetProcessWorkingSetSize' immer mal wieder aufrufen um das working set klein zu halten. vielleicht so in 5 sekunden abständen.

    Was soll das für einen Sinn machen? Ausser das Dein Programm langsamer wird?


Anmelden zum Antworten