Entwickler-Ecke

Off Topic - Speicherverbrauch bei vielen Dateien


ssb-blume - Mi 25.02.15 13:22
Titel: Speicherverbrauch bei vielen Dateien
Hallo,

ich habe ein merkwürdiges Verhalten bei einem meiner Programme gefunden.
Es werden bei Programmstart 2800 wav-Dateien , alle ca. 1Mb groß, mit BASS als Stream geladen.
Also ungefähr, mit Programm 3 GB. Dauert etwas, aber kein Problem.
Nun schaue ich im Taskmanager den Speicherverbrauch an und erhalte nur 1.5 GB.
???
Das Programm wird beendet und alle!! Resourcen freigegeben. Taskmanager zeigt mir
die alte RAM-Belegung an. Also OK.

Nun starte ich das Programm erneut und siehe da, die Ladezeit aller Dateien ist
nicht mal die Hälfte, so, als ob die Daten schon im RAM wären. Nach Freigabe?
Mir ist klar, das die Daten nicht wirklich entfernt werden, aber deren Adressen doch wohl?

Seltsam....
Die Daten sind alle vom Programm greifbar (es ist eine elektr. Orgel) und ein Nachladen ist
zeitlich nicht spürbar.

Kann mir jemand erklären, warum?

Hansi


Narses - Mi 25.02.15 13:37

Moin!

user profile iconssb-blume hat folgendes geschrieben Zum zitierten Posting springen:
Kann mir jemand erklären, warum?
Das Betriebssystem cached die Dateien, die du geöffnet hast für den nächsten Zugriff. :idea: Und wie´s aussieht, macht´s das doch genau richtig... :D

cu
Narses


Ralf Jansen - Mi 25.02.15 13:49

Der Taskmanager ist zur Beurteilung des Speicherverbrauchs auch eher ungeignet. Zumindest aus Programmierersicht.
Um einen besseren Überblick zu bekommen hilft da zum Beispiel RAMMap [https://technet.microsoft.com/en-us/library/ff700229.aspx] von Sysinternals.
Hilfreich zum Beispiel auch um echtes Kaltstart Verhalten seiner Anwendung zu prüfen da man mit RAMMap auch mal schnell alle Caches leeren kann.