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

Kako da oslobodim memoriju?

[es] :: .NET :: Kako da oslobodim memoriju?

[ Pregleda: 5221 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

krul
Cardak ni na nebu ...

Član broj: 16060
Poruke: 85
*.bchsia.telus.net.



+1 Profil

icon Kako da oslobodim memoriju?09.01.2006. u 01:28 - pre 222 meseci
Pozdrav!

Radeci na programu za raspored sastanaka (scheduleru) razvio sam kompleksan objekt implementirajuci drvo kao strukturu podataka. Testirao na odvojenoj aplikaciji koju sam razvio samo u svrhu testiranja algoritma. Nakon sto sam resenje implemntirao u radnom okruzenju suocio sam se sa sledecim problemom:
aspnet_wp.exe (PID: 3800) was recycled because memory consumption exceeded the 153 MB (60 percent of available RAM).

Dobro znam da mi je RAM mali, ali uprkos tome ja zelim da exsplicitno oslobodim memoriju da optimiziram ceo proces.
Any ideas?

Jednostavnost! Odlika genijalnosti
 
Odgovor na temu

erkan
Sarajevo

Član broj: 12339
Poruke: 267
*.bstelecom.ba.

ICQ: 238530669


Profil

icon Re: Kako da oslobodim memoriju?09.01.2006. u 07:32 - pre 222 meseci
Daj malo vise detalja kako si to realizovao,
sta od objekata koristis... itd.

Samo se budala saplice na kamen iza sebe.
 
Odgovor na temu

krul
Cardak ni na nebu ...

Član broj: 16060
Poruke: 85
*.bchsia.telus.net.



+1 Profil

icon Re: Kako da oslobodim memoriju?09.01.2006. u 15:32 - pre 222 meseci
Koristim c#,
Glavni objekt koji zauzima najvise memorije je klasa sa 8 ugnjezdenih klasa od kojih dve te ugnjezdene klase imaju svoje ugnjezdene klase. Verujem da je oslobadjanje memorije u .net okruzenju generalni problem i u tom smeru bih zelio da nastavim diskusiju. Mislim da treba da koristim GC (Garbage Collector) ali nisam siguran kako. Ne znam da li bih mogao da primenim IDisposable na svaku klasu pa da onda sa jednog mesta kad zavrsim proces pozovem Dispose() sto ce za cilj imati oslobadjanje memorije za sledeci ciklus? Ako neko ima iskustva sa slicnim problemom bio bih zahvalan na pomoci.
Pozdrav
Jednostavnost! Odlika genijalnosti
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Kako da oslobodim memoriju?09.01.2006. u 16:18 - pre 222 meseci
Nema potrebe da koristis GC, niti ce ti to mnogo pomoci, recikliranje procesa ce se desiti kad ti alociras, ne posle toga. IIS je reciklirao proces nakon sto je sam pozvao GC.Collect, sto znaci da je tebi aplikacija u tom trenutku imala tu velicinu. Problem je prosto i jednostavno to sto ti je memorija mala

Ako si se resio svih referenci (dakle to tvoje stablo ili njegov deo nije vise referenciran kroz Application, Cache, Session ili bilo koji drugi non-Page objekat), recycler ce ga sam izbaciti iz memorije pre nego obori proces. Proveri kod da ti nije negde zalutalo nesto... Generalno nije pametno direkotno se igrati sa GC-om, izuzetci su veoma retki, i taj rvoj problem ne spada u njih.





Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

krul
Cardak ni na nebu ...

Član broj: 16060
Poruke: 85
*.bchsia.telus.net.



+1 Profil

icon Re: Kako da oslobodim memoriju?10.01.2006. u 03:17 - pre 222 meseci
Nasao sam sta je problem.
Naime dubina stabla je odredjena brojem zahteva a "tezina" celokupnog objekta raste s brojem zahteva kao i broj rekurzivnih poziva. I tako kad naidje student sa vise od 7 zahteva proces kolapsira prilikom gradnje stabla usled rekurzije koju koristim. Broj kopiranih funkcija na stacku postane prevelik i eventualno istrosi svu memoriju.
Hvala svim diskutantima na komentarima.

A sad na prepisivavanje koda za izgradnju stabla. Pokusacu da umesto da izgradim celo stablo pa onda pretrazujem, pretrazujem dok gradim i rezem grane koje mi ne trebaju.

Pozdrav
Jednostavnost! Odlika genijalnosti
 
Odgovor na temu

[es] :: .NET :: Kako da oslobodim memoriju?

[ Pregleda: 5221 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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