c++ ja muisti loppuu!

olen tehnyt c ohjelman joka suorittaa tiettyä toimintoa (odottaa vistiä ja lähettää sitä..)
ja pidän kyseistä ohjelmaa command prompt muodossa auki jatkuvasti, päivän tai parin päästä kone menee kuitenkin jumiin ja ilmoittaa jotain muistin täyttymisestä! missä mahdollisesti olisi vika, miksi ohjelma muka kuormittaa muistia niin ettei se vapauta sitä enää vai onko tässä nyt joku juju mitä mä en ole hoksannut?
7520
Äänestä

Muut lukivat myös

Vastaukset 7

Vanhimmat

Millä kutsuilla lähetät viestin, ja onko kyseessä socketti, Windowsin API:n vai.

Ilmeisesti sinulla on pari ohjelmaa jotka lähetävät viestejä keskenään ? kumman pitää vapautaa muisti (oletan että olet varannut viestille tilaa)

Ehkä näin ?

Ota viesti vastaan
Varaa muistia ja kopioi viesti sinne, ja lähetä se.
Vapauta vanha viesti.

Äänestä
  • ongelman ei pitäisi olla siinä koska käytän ihan ammattitason viestinvälitys ohjelmistoa.. eli se kyllä hoitaa sen puolen oikein, voiko olla mahdollista että tämä juokseva sovellusikkuna varaa muistia jotenkin täyteen, vai jääkö ainoaksi mahdollisuudeksi ohjelmallinen "virhe" missä joku muistipaikka jää vapauttamatta!?

    Äänestä

  • ggt kirjoitti:

    ongelman ei pitäisi olla siinä koska käytän ihan ammattitason viestinvälitys ohjelmistoa.. eli se kyllä hoitaa sen puolen oikein, voiko olla mahdollista että tämä juokseva sovellusikkuna varaa muistia jotenkin täyteen, vai jääkö ainoaksi mahdollisuudeksi ohjelmallinen "virhe" missä joku muistipaikka jää vapauttamatta!?

    Menee mielenkiintoiseksi.

    "voiko olla mahdollista että tämä juokseva sovellusikkuna varaa muistia jotenkin täyteen, "

    Eli siis ohjelmasi tulostelee "lokia" dos ikkunaan, tuossa voi olla hyvinkin syy, kuulostaa käyttöjärjästelmän vialta.

    Äänestä

  • ..... kirjoitti:

    Menee mielenkiintoiseksi.

    "voiko olla mahdollista että tämä juokseva sovellusikkuna varaa muistia jotenkin täyteen, "

    Eli siis ohjelmasi tulostelee "lokia" dos ikkunaan, tuossa voi olla hyvinkin syy, kuulostaa käyttöjärjästelmän vialta.

    aivan, mutta nt:ssä voi määritellä dos-ikkunan bufferin koon ja se on nyt 50:tä eli sen jälkeen alkaa kirjoittaan päälle! eli tuntus että vika ei voi tuossakaan olla... mä ne kyllä keksi enää mitää tähän... ei voi muutaku ihmetellä!!

    Äänestä

  • ggt kirjoitti:

    aivan, mutta nt:ssä voi määritellä dos-ikkunan bufferin koon ja se on nyt 50:tä eli sen jälkeen alkaa kirjoittaan päälle! eli tuntus että vika ei voi tuossakaan olla... mä ne kyllä keksi enää mitää tähän... ei voi muutaku ihmetellä!!

    hämäräksi menee. Kääntäjä ei taida olla Borlandin valmistama ? siinä voisi pistää codeguard ominaisuuden päälle... muussa tapauksessa koodia tutkimaan....

    Äänestä

  • ....., kirjoitti:

    hämäräksi menee. Kääntäjä ei taida olla Borlandin valmistama ? siinä voisi pistää codeguard ominaisuuden päälle... muussa tapauksessa koodia tutkimaan....

    joo ei ole borland.. vaan MS Visual!
    Eipä kyl auta tota koodiakaan tutkia kun siisn ei järkiselitystä näytä olevan..
    Auttaiskohan jos laittais ohjelman pyörimään windows servicenä..!?

    Äänestä

  • ggt kirjoitti:

    ongelman ei pitäisi olla siinä koska käytän ihan ammattitason viestinvälitys ohjelmistoa.. eli se kyllä hoitaa sen puolen oikein, voiko olla mahdollista että tämä juokseva sovellusikkuna varaa muistia jotenkin täyteen, vai jääkö ainoaksi mahdollisuudeksi ohjelmallinen "virhe" missä joku muistipaikka jää vapauttamatta!?

    kyllä sitä voi olla vikaa ihan kaupallisissakin ohjelmissa.. Avaa windowsin taskmanager taustalle, niin voit seurata muistin täyttymistä ja mahdollisesti paikallistaa johtuuko se juuri ko. ohjelmasta.

    Vika voi olla esim. joku sellainen, että ohjelma luo viestioliota jossa varataan viestille tilaa, joka kyllä vapautetaan, mutta itse olio jää roikkumaan. Tälläinen on ihan yleistä ja muisti täyttyy niin hiljaa, että sitä ei pienissä testicaseissa huomata. Jos sulla on koodi, niin eiku debuggeri vaan päälle ja ohjelma pyörimään ja välillä tsekkaat mitä pointtereille tapahtuu, jne..

    Äänestä

Kommentoi aloitusta


ggt kirjoitti:

olen tehnyt c ohjelman joka suorittaa tiettyä toimintoa (odottaa vistiä ja lähettää sitä..)
ja pidän kyseistä ohjelmaa command prompt muodossa auki jatkuvasti, päivän tai parin päästä kone menee kuitenkin jumiin ja ilmoittaa jotain muistin täyttymisestä! missä mahdollisesti olisi vika, miksi ohjelma muka kuormittaa muistia niin ettei se vapauta sitä enää vai onko tässä nyt joku juju mitä mä en ole hoksannut?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu