Zwalnianie pamieci

0

Mam program ktory liczy na rekordach itp. Wszystkie zmienne i tablice sa na wskaznikach i recznie alokuje pamiec przez New i zwalniam przez Dispose. I teraz np. kod

Obiekt.Create(400); //zajmie np. 5mb ramu
Obiekt.Clear; //wyczysci caly obiekt i zwolni cala pamiec
i tu windows pokazuje ze nic sie z pamiecia nie zmienia, dlaczego?
Obiekt.create(200); //powinno zajac 2.5mb
ale windows pokazuje ze dodatkowo zabral 2.5 ramu

lub
Obiekt.Create(400);
Obiekt.Clear;
Obiekt.Create(400);
Obiekt.Clear;
Obiekt.Create(400);
Obiekt.Clear;
to po kazdym ponownym utworzeniu zabiera mi nowy ram, a nic nie zwalnia, przynajmniej tak pokazuje monitor wydajnosci windowsa(ctrl+alt_del). Jak program sie zamyka to caly ram jest zwalniany. O co tu chodzi?

0

Z tego wniosek że za każdym razem alokuje nowe (niezajęte) miejsce w pamięci. Tak pewnie funkcjonuje manager pamięci.

0

juz jest ok, malutki blad w kodzie i takie smiecenie w pamieci. Wystarczylo ze w zagniezdzonej strukturze ktora ma np. tablice 400 elem. wsk. do innej struktury nie zwalniac ostatnich 10 elem. w kazdej takiej tablicy i efekt byl taki jak pisalem. Z tego wynika ze np. jak zajeto 10mb a zwolniono 8 to tak jak by nic nie zwolniono, bo win. zabieral juz ram z dysku.
Teraz juz zwalnia jak powinien.

1 użytkowników online, w tym zalogowanych: 0, gości: 1