Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa oslobađanjem memorije (metoda Free, etc.)!?

[es] :: Pascal / Delphi / Kylix :: Problem sa oslobađanjem memorije (metoda Free, etc.)!?

[ Pregleda: 3163 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.adsl-2.sezampro.yu.



Profil

icon Problem sa oslobađanjem memorije (metoda Free, etc.)!?27.02.2008. u 17:22 - pre 196 meseci
Pozdrav,

koristim ZeosLib, TZConnection i TZQuery, kreiram ih iz koda u okviru dll -a. Kreiram TZConnection, prosledim parametre za kačenje na bazu, potom kreiram TZQuery, zadam SQL upit (otvori dataset) i potom zatvorim dataset i odradim "FreeAndNil" metodu. Naravno, pošto mi konekcija nije potrebna odradim diskonektovanje i, takođe, pozovem metodu "FreeAndNil". To lepo radi, ali izgleda da postoje "repovi" u memoriji, odnosno iz memorije se ne isprazni sve što je zauzeto ovim procesom te dolazi do izuzetka.

Kad odradim kreiranje konekcije i dataset -a, al ga ne otvaram, ne koristim metodu "Open" i izuzetak se ne pojavljuje. Predpostavljam pošto je ta metoda povezana sa unitom "DB", a metoda "Open" ima DataSet.Active :=True da je tu ostalo nešto otvoreno, tj. ostalo je alocirano u memoriji!?

Na koji bih način mogao izvršiti dislociranje svega što je bilo u memoriji a vezano za dll?!
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Problem sa oslobađanjem memorije (metoda Free, etc.)!?27.02.2008. u 18:33 - pre 196 meseci
> diskonektovanje i, takođe, pozovem metodu "FreeAndNil". To lepo radi, ali izgleda da postoje "repovi" u memoriji, odnosno iz memorije se
> ne isprazni sve što je zauzeto ovim procesom te dolazi do izuzetka.

Kog?

> Na koji bih način mogao izvršiti dislociranje svega što je bilo u memoriji a vezano za dll?!

Pisanjem custom memory managera, ali ne verujem da tvoj problem ima veze sa neoslobađanjem memorije, pre da je u pitanju upotreba oslobođene memorije.
 
Odgovor na temu

_deran_

Član broj: 69493
Poruke: 252
77.46.158.*



+1 Profil

icon Re: Problem sa oslobađanjem memorije (metoda Free, etc.)!?27.02.2008. u 22:51 - pre 196 meseci
jesi li ubacio 'ShareMem' u 'uses' gde treba?
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.adsl-2.sezampro.yu.



Profil

icon Re: Problem sa oslobađanjem memorije (metoda Free, etc.)!?28.02.2008. u 07:37 - pre 196 meseci
Poruka:
Citat:
The instruction at "0x01e83636" referenced memory at "0x0202961c". The memory could not be "read".

Što se tiče ShareMem, kad je ubacim u "uses", delphi pukne ceo, tj. moram "Task Manager" - "End Process"!?

Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

_deran_

Član broj: 69493
Poruke: 252
*.subotica.net.



+1 Profil

icon Re: Problem sa oslobađanjem memorije (metoda Free, etc.)!?28.02.2008. u 08:05 - pre 196 meseci
jesi ga ubacio samo u .dpr na prvom mestu ili jos negde?
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.adsl-2.sezampro.yu.



Profil

icon Re: Problem sa oslobađanjem memorije (metoda Free, etc.)!?28.02.2008. u 08:50 - pre 196 meseci
Kao što sam rekao, pišem dll (automation object), "ShareMem" prvo sam ubacio unit, potom i u dpr i nije više dolazilo do pucanja delphija. Dakle, ono što je unutar same activex kontrole(dll) radi ok, al kad izađem iz aplikacije koja je koristila procedure iz tog dll -a, dolazi do greške koju sam gore naveo.
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Problem sa oslobađanjem memorije (metoda Free, etc.)!?28.02.2008. u 10:40 - pre 196 meseci
> Kao što sam rekao, pišem dll (automation object), "ShareMem" prvo sam ubacio unit, potom i u dpr i nije više dolazilo do pucanja delphija.
> Dakle, ono što je unutar same activex kontrole(dll) radi ok, al kad izađem iz aplikacije koja je koristila procedure iz tog dll -a, dolazi do
> greške koju sam gore naveo.

Ta aplikacija iz koje izlaziš je Delphi prg ili ne? Koju grešku dobijaš? Koji threading model koristiš, pokušaj neki drugi. Kako razmenjuješ podatke između dlla i programa? Kreni da pojednostavljuješ aplikaciju (ako je ti pišeš, ako ne napravi test) i dll sve dok ne dođeš do trenutka kada radi.
 
Odgovor na temu

_deran_

Član broj: 69493
Poruke: 252
*.subotica.net.



+1 Profil

icon Re: Problem sa oslobađanjem memorije (metoda Free, etc.)!?28.02.2008. u 11:57 - pre 196 meseci
http://delphi.about.com/od/objectpascalide/l/aa103003a.htm
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.adsl-2.sezampro.yu.



Profil

icon Re: Problem sa oslobađanjem memorije (metoda Free, etc.)!?28.02.2008. u 13:44 - pre 196 meseci
Aplikacija iz koje izlazim nije delphi program, greška:
Citat:
The instruction at "0x01e83636" referenced memory at "0x0202961c". The memory could not be "read".

Threading model je "tmFree", a Instancing je "ciSingleInstance".
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.adsl-2.sezampro.yu.



Profil

icon Re: Problem sa oslobađanjem memorije (metoda Free, etc.)!?29.02.2008. u 07:33 - pre 196 meseci
Pozdrav,

u ovom momentu, posle niz pokušaja da rešim problem odustao sam od ZeosLib. Na samom sajtu, forum, može se uočiti više tema sa nazivom i sadržajem "memory leak". Takođe, to se pojavljivalo i u verziji 6.2, koliko vidim, to je poslednje, stoga mi je ta varijanta nestablina.

Dakle, problem se manifestovao kroz activex kontrolu (dll), ali ne i u samoj delphi aplikaciji.

Hvala Savkiću i _deran_ -u na konsultacijama.
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Problem sa oslobađanjem memorije (metoda Free, etc.)!?

[ Pregleda: 3163 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.