Re: Delphi: Pointer und Speicher
6. Okt 2007, 13:25
Der Taskmanager zeigt den gesamten dem Programm zugewiesenen Speicherpool an. Diesen verwaltet im Programm dann der Heap/Speichermanager. Wenn dieser nun nicht auf eine gewisse Art eine Logik in seiner Verwaltung reinbringt sondern einfach nur frei alloziiert und freigibt, dann kann sein Bedarf steigen (wenn er freigegebene Bereiche mit der angeforderten oder einer grösseren Grösse nicht wieder alloziiert bzw. zurückliefert). Dadurch sieht es im Taskmanager so aus, als wenn ständig der Speicherbedarf steigt, was aber nur an der Organisation des Speichermanagers liegt. Zum anderen wird auch ein jemals vom Speichermanager von Windows angeforderter Speicherpool nicht wieder zurück gegeben bzw. wieder verkleinert. Von daher wird es nicht wieder fallen im Taskmanager - es kann nur steigen.
Aber wenn es mit visible/hide zu einer Alloziierung kommt, ist die Frage ob nicht doch eine Instanz oder Pointer im OnShow alloziiert wird, welche nicht wieder ordentlich freigegeben wird.
Aber da hilft dann u.a. FastMM...
|