Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

malu vabastamine

0 views
Skip to first unread message

Arvo Vill

unread,
Mar 15, 2004, 3:50:02 AM3/15/04
to
Tere,

Ei saa nagu hästi mäluvabastamisele pihta.
Keskkonnaks Borland Delphi Pro. Ntx on tekitatud andmebaasitabeli kuvamise
vorm (TGrid+TDatasource+TQuery; onActivate query.open).
Välja kutsun ma vormi järgnevalt:
try
form2:=TForm2.Create(self);
form2.showmodal;
finally
form2.free;
end;

Kui ma nüüd seda vormi korduvalt avan-sulgen, siis Windows'i Memory
Manageri järgi kasutatud mälu tasapisi suureneb (s.t. tundub, et ei vabasta
mälu täielikult). Miks on see nii??

arvo.

Ain

unread,
Mar 15, 2004, 7:29:35 AM3/15/04
to
On Mon, 15 Mar 2004 10:50:02 +0200, "Arvo Vill" <ar...@clannet.ee>
wrote:

> Kui ma nüüd seda vormi korduvalt avan-sulgen, siis Windows'i Memory
>Manageri järgi kasutatud mälu tasapisi suureneb (s.t. tundub, et ei vabasta
>mälu täielikult). Miks on see nii??

Sest Windowsi Task Manager näitab aiateibaid. Kui su kood on selline
nagu postitasid, siis seal mingit mäluleket ei ole. Kui just seal
TForm2-es ei tellita mälu mida form-i vabastamisel ei vabastata. Hea
tasuta proge "ressursside lekkimise" kontrolliks on MemProof,
kontrolli sellega.


ain

Arvo Vill

unread,
Mar 15, 2004, 11:41:21 AM3/15/04
to

Japp, MemProof näitas palju rahustavamat pilti .. tänan.

Aga siiski veel üks küsimus. Peale esimest vormi laadimist ja vabastamist,
lisandus applicationi enda loadimisel olevale virtual mälu kulule veel mingi
kulu. Millele antud mälu kulub (kas mingid vormi näitajad)??

Arvo.

"Ain" <@i...@taavi.ee> wrote in message
news:40559ff0....@kadri.ut.ee...

Ain

unread,
Mar 15, 2004, 3:53:26 PM3/15/04
to
On Mon, 15 Mar 2004 18:41:21 +0200, "Arvo Vill" <ar...@clannet.ee>
wrote:

>Aga siiski veel üks küsimus. Peale esimest vormi laadimist ja vabastamist,


>lisandus applicationi enda loadimisel olevale virtual mälu kulule veel mingi
>kulu. Millele antud mälu kulub (kas mingid vormi näitajad)??

Ma pole nüüd kindel, et ma küsimusest õieti aru saan aga loomulikult
kulub vormile (selle loomisel) mälu. Kui sa seda mälukulu nägid
MemProof'is, siis seal peaks sulle ka küllaltki täpselt näha olema
mille jaoks mälu telliti.

Lisaks, reeglina mälu tellitakse suuremate tükkidena kui vaja on ja
siis kasutatakse seda vastavalt vajadusele. See tuleb "odavam" kui iga
kord täpselt õige pikkusega mälujupp tellida. Ja mälu vabastamisel
seda tavaliselt kohe OSile tagasi ei anta vaid jäetakse nö resevi.


ain

valentin tihomirov

unread,
Apr 11, 2004, 8:57:05 AM4/11/04
to

> try
> form2:=TForm2.Create(self);
> form2.showmodal;
> finally
> form2.free;
> end;
Siin on viga (väga levinud). Mis toimub kui konstruktoris toimub
"exception"? Peaks olema

form2:=TForm2.Create(self);
try // enter try/finally only if object created
form2.showmodal;
finally
form2.free;
end;


0 new messages