tiistaina, maaliskuuta 06, 2007

Muisti ja vesi virtaavat

Onpas vaisu meininki. Ikkunasta katsoen ulkonakaan ei näytä tapahtuvan oikein mitään. Pari autoa tönöttää liikennevaloissa ja joku kävelee kädet taskussa jossain tuolla kaukana. En sitten saanut lääkäriltä sairaslomaa, enkä paljon muutakaan, koska en kuullema tarvitse varpaitani koodatessani. Jotain särkylääkkeitä sentään sain, mutta nekään eivät ole edes kolmiolääkkeitä. Laimeaa.

Olen viimepäivinä yrittänyt jäljittää apuohjelman avulla ohjelmistossa tapahtuvaa muistivuotoa. Oikeastaan muistivuoto on ihan tyhmä sana kuvaamaan ongelmaa, koska eivät ne muistissa olevat jutut mihinkään vuoda pois. Ongelma on pikemminkin se, että ohjelmiston muistiin jää asioita, joita ei enää tarvitsisi muistaa ja muisti loppuu lopulta kesken. No, toisaalta kyllä se vapaana oleva muisti vuotaa ohjelmistoon, joten kai tuo muistivuoto on ihan hyvä sana kuvaamaan ongelmaa kuitenkin.

"Muistivuoto on ohjelmoinnin tyypillisimpiä virheitä. Tällä tarkoitetaan muistin varausta ohjelmakoodissa ilman muistin vapauttamista. Kun muistivuotoa sisältävää ohjelman osaa suoritetaan riittävän monta kertaa, voi vapaa muisti loppua, mikä aiheuttaa ohjelmiston kaatumisen."
Lähde: http://fi.wikipedia.org/wiki/Muistivuoto

Pakko kai se on uskoa, että noin se on. Mutta jos minä olisin saanut päättää, olisin nimennyt ilmiön kyllä juuri päinvastoin esim. muistipaisunnaksi.

Ratkaisuksi muistivuodolle olen suunnitellut reikää ohjelmistoon, josta muisti voisi vuotaa taas vapaaksi. Tilanne on vähän sellainen kuin että jossain olisi iso järvi jossa on paljon vettä. Järvestä menee puro lampeen, ja jostain syystä kaikki vesi haluaa mennä sinne lampeen, ja järvestä loppuu vesi. Sieltä järvestä kuitenkin tarvitsisi välillä ottaa sitä vettä, kun taas lammessa sitä ei nyt niin tarvittaisi. Nyt suunnittelen tekeväni toisen puron lammesta takaisin järveen. Sikäli kun ymmärrän vesistöjen liikkeiden toimintalogiikkaa, tämä ei kuulosta kovin toimivalta ratkaisulta, mutta en ole keksinyt parempaakaan keinoa. Tietysti voisin myös aina aika ajoin räjäyttää koko lammen, niin että vesi haihtuisi ilmaan ja sataisi sitten takaisin järveen.

Ei kommentteja: