Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

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

  • 9 odgovora
  • 4.383 pregleda

Najnovija ↓

Problem sa oslobađanjem memorije (metoda Free, etc.)!? 27.02.2008. u 18:22 · pre 227 meseci #1
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?!
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Problem sa oslobađanjem memorije (metoda Free, etc.)!? 27.02.2008. u 19:33 · pre 227 meseci #2
> 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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Problem sa oslobađanjem memorije (metoda Free, etc.)!? 28.02.2008. u 08:37 · pre 227 meseci #4
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"!?
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Problem sa oslobađanjem memorije (metoda Free, etc.)!? 28.02.2008. u 09:50 · pre 227 meseci #6
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.
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Problem sa oslobađanjem memorije (metoda Free, etc.)!? 28.02.2008. u 11:40 · pre 227 meseci #7
> 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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Problem sa oslobađanjem memorije (metoda Free, etc.)!? 28.02.2008. u 14:44 · pre 227 meseci #9
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".
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: Problem sa oslobađanjem memorije (metoda Free, etc.)!? 29.02.2008. u 08:33 · pre 227 meseci #10
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.
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme