«« ( Date ) »» // «« ( Thread ) »» // drs - 2007

Re: OutOfMemoryError

by Vanja Petreski
ponedeljak, 18. jun 2007 - 22:00.

Evo zasto (sada ces mozda shvatiti da imas pogresno resenje :D):

Ukoliko u tvoj objekat Poruka stavljas izmedjuostalog neki objekat koji si
vec jedanput poslao, a posle toga se u njemu nesto izmenilo i sada ga ponovo
saljes na ovaj nacin, oos ce to skapirati, jer drzi u kesu i nece ponovo
poslati taj objekat. Sa druge strane kada se primi poruka, bice procitan
stari objekat, a ne novi izmenjeni. Na taj nacin Java optimizuje, ima kes.
Medjutim ovo je lose kada menjas pa saljes, a to je situacija, bar kod
mene.. E sad, resenje tog problema je da radis svaki put posle upisa
reset(); Ta operacija cisti CEO kes. Ali onda imas problem, jer je ~15 puta
sporije! Sve ili nista!

Evo jednog dobrog artikla na tu temu:
http://javaspecialists.eu/archive/newsletter.do?issue=088&locale=en_US

V



Ne razumem sto vas toliko muci oos. Ja sam moj OutOfMemoryError imao
samo zbog velicine slika, oos mi nije pravio probleme.

Gde god imam oos imam send funkciju koja radi ovako

synchronized(out) { //posto iz vise threadova moze da se salje
out.writeObject(new Poruka(...));
out.flush(); //da bi se poslalo sve do kraja a ne da nesto ostane u
baferu i da ceka jos podataka
}

i to je to.

--
Pozdrav,
Igor Stojkovic mailto: stojkovic.igor@gmail.com



-----------------------------------------------------------------
unsubscribe:
minimalist@rti.etf.bg.ac.yu?subject=unsubscribe%20drs
-----------------------------------------------------------------