Novo

Forum kao aplikacija na telefonu

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

  • 13 odgovora
  • 4.994 pregleda

Najnovija ↓

UTF8VCL Memory Leak 23.11.2007. u 10:59 · pre 230 meseci #1
Da li je neko imao prilike da se stretne (radi) sa open source UTF8VCL datotekama?

Njihova svrha jeste da omoguce unicode rad sa svim non unicode komponentama u Delphi-ju.
Sve radi super, ako se izuzme OGROMAN memory leak!!!
Naime, dok aplikacija radi pratim Mem Usage na Windows Task Menager-u i aplikacija koja bi inace trebala da koristi max. 15mb naraste cak i do 250mb!!!!
Ono sto sam primetio jeste da mem usage raste i na pomeraj misa, rebacivanje na druge aplikacije.....

Probao sam da ovaj leak pronadjem sam, ali sam se izgubio u kodu i nemam pojma kako dalje.

Da li neko zna kako i sta bi moglo da se odradi i ukloni ovaj bug, posto bih UTF8VCL preporucio svima kojima trebaju nasa slova u programu.
Re: UTF8VCL Memory Leak 23.11.2007. u 11:08 · pre 230 meseci #2
Kao pomoc, upload-ovao sam fajlove sa kojima radim na rapidshare :

Code:

http://rapidshare.com/files/71672978/utf8vcl.rar
Re: UTF8VCL Memory Leak 23.11.2007. u 11:14 · pre 230 meseci #3
Ako si u programu koristio akcije, prekontrolisi sta si stavio na _imeakcije_Update. Ja se jednom ubih od trazenja a greska je bila tu(ne secam se tacno vec kakav bug je bio).
Potpis
Arduino Control Center
Re: UTF8VCL Memory Leak 23.11.2007. u 11:19 · pre 230 meseci #4
Ne...test aplikaciju koju sam napravio nema nista sem list boxa i totalno je bez eventa!
Nagomilavanje mem usage-a se desava bez obzira sta radim na aplikaciji - CAK I KADA SAMO POMERAM MISA!!!
Re: UTF8VCL Memory Leak 23.11.2007. u 11:43 · pre 230 meseci #5
Probao sam. Curi samo zvoni. Pri zatvaranju aplikacije ja dobijam gresku: "Invalid floating point operation".
Potpis
Arduino Control Center
Re: UTF8VCL Memory Leak 23.11.2007. u 14:34 · pre 230 meseci #6
> Da li neko zna kako i sta bi moglo da se odradi i ukloni ovaj bug, posto bih UTF8VCL preporucio svima kojima trebaju nasa slova u programu.

Uzmi neki profiler ili memchek program, FastMM verovatno može da ti završi posao. A u pogledu naših slova mislim da su full unicode komponente bolja varijanta, Tnt ili ElPack.
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: UTF8VCL Memory Leak 23.11.2007. u 14:50 · pre 230 meseci #7
To sam i odradio. Problem definitivno nije u ShareMem-u jer sam njega prvog zamenio. Takodje sam koristio i memcheck i MemoryValidator, ali nisam uspeo da pronadjem nikakve validne tragove koje bi mi pomogle da problem resim. Svakako, moje programerska iskustva u ovome su donekle ogranicena i moguce je da jednostavno ne znam da protumacim rezultate, ali to i jeste raznog zasto sam postavio ovu temu.... :(

Sto se tice moje preporuke, Tnt komponente su sada vlasnistvo TMS-a, pa kao i za ElPack, morate platiti, dok su ove biblioteke dostupne svima.

U svakom slucaju, koristilo bi mi ako neko moze da pogleda ove fajlove (ima ih samo 4 :) )...

Svakako, hvala na dosadasnjim sugestijama.
Re: UTF8VCL Memory Leak 23.11.2007. u 15:56 · pre 230 meseci #8
> To sam i odradio. Problem definitivno nije u ShareMem-u jer sam njega prvog zamenio. Takodje sam koristio i memcheck i MemoryValidator, ali nisam
> uspeo da pronadjem nikakve validne tragove koje bi mi pomogle da problem resim.

Da li si koristio FastMM? Trebaće ti možda malo vremena da ga podesiš ali sa njim sasvim sigurno možeš otkriti mem leak. Takođe pogledaj u TaskManageru da li raste broj GDI objekata, moguće je da se alociraju neki windows objekti koji se ne oslobađaju.

> Sto se tice moje preporuke, Tnt komponente su sada vlasnistvo TMS-a, pa kao i za ElPack, morate platiti, dok su ove biblioteke dostupne svima.

Može se i dalje naći poslednja besplatna verzija TNT kontrola, a ElPack ima freeware komponente koje su donekle ograničene.

> U svakom slucaju, koristilo bi mi ako neko moze da pogleda ove fajlove (ima ih samo 4 :) )...

Sada nemam vremena, možda za neki dan, da li si kontaktirao proizvođače tih klasa, pogledaj da li su i drugi prijavili te probleme, možda rešenje već postoji.

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: UTF8VCL Memory Leak 25.11.2007. u 15:50 · pre 230 meseci #9
Fajlove sam skinuo sa Source Forge-a i tamo su takodje konstatovali ovaj problem, ali na zalost bez resenja.
Pokusao sam i da kontaktiram admina za ovaj projekat, ali takodje bezuspesno.

Radio sam i sa FastMM-om i MemCheck-om zadnja 2 dana, ali rezultati provere su bez ikakvog smisla. Znam da deluje lenjo sto trazim pomoc u pronalazenju ovog bug-a, ali vec deset dana pokusavam da razresim ovaj problem i nisam nista blizi resenju nego kada sam poceo :((
Re: UTF8VCL Memory Leak 25.11.2007. u 17:29 · pre 230 meseci #10
Prijatelju probaj da stavis Breakpoint na svaku proceduru koja imas po unitima .
tako ces da detektujes koje se koriste procedure i kad nista ne koristis direktno.
Onda vidi dali se u svakom konkretnom slucaju kada curi memorija javlja ista procedura.
Ili probaj sa nekim programom za reverzovanje recimo OllyDBG ili slicno da bi pratio applikaciju tokom izvrsenja mada i sam Delphi ima tu mogucnost.
Ili prati upotrebu procedura za uzimanje i oslobadanje memorije.
Re: UTF8VCL Memory Leak 25.11.2007. u 17:42 · pre 230 meseci #11
To sam i radio. Samo ima jedan problem : Nema pravila kada se pojavljuje leak - iste procedure se vrte i neki put se memorija trosi neki put ne. Gledao sam i sta i pod kojim uslovima poziva ove procedure. Jednostavno nisam uocio nikakve pravilnosti. Takodje mislim da je vise tredova podignuto, tako da se step by step debug tesko koristi.
Re: UTF8VCL Memory Leak 25.11.2007. u 18:02 · pre 230 meseci
izmenjeno 1 put, poslednji put savkic 25.11.2007. u 21:03
  1. savkic25.11.2007. u 21:03zapis iz teksta poruke
#12
> Radio sam i sa FastMM-om i MemCheck-om zadnja 2 dana, ali rezultati provere su bez ikakvog smisla. Znam da deluje lenjo sto trazim pomoc u
> pronalazenju ovog bug-a, ali vec deset dana pokusavam da razresim ovaj problem i nisam nista blizi resenju nego kada sam poceo :((

Problem je u MakeWndProcIntercept, za svaku poruku se alocira memorija koja se nikada ne oslobadja. Da bi se našlo tačno rešenje moralo bi da se uđe u duboko u kod i sistem rada što zahteva mnogo posla. Jednostavno rešenje je da pronađeš krajnje funkcije iz kojih se poziva MakeWndProcIntercept i da na kraj staviš VirtualFree(AlociraniPointer, 0, MEM_RELEASE);

Trenutno poboljšanje možeš videti ako na kraj CallWindowProcAIntercept staviš VirtualFree(Proc, 0, MEM_RELEASE); Ima još takvih mesta i vodi računa. ne treba uvek oslobađati memoriju jer se u nekim slučajevima ne poziva MakeWndProcIntercept.
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: UTF8VCL Memory Leak 25.11.2007. u 19:30 · pre 230 meseci #13
Mozda da probas mada nije najsrecnije resenje da cuvas neka znacajna podesavanja u mem ili fajlu i da povremeno unistavas objekat i ponovo ga kreiras i setujes podesavanja.

Da debagovanje aplikacija nikad nije lako narocito ako je ti nisi ni pravio, a ima puno koda.
Re: UTF8VCL Memory Leak 26.11.2007. u 09:21 · pre 230 meseci #14
Savkic, CARE!!!

Odradio sam sve sto si mi napisao i problem je (bar za sada :)) ) resen.

Hvala!!!
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme