C# ja virtuaalimuisti

hoxhoxhox

Saako virtuaalimuistia tyhjennettyä ohjelman ajon aikana? Se nimittäin kasvaa tolkuttomasti. Eikä ympäristö itse sitä vapauta itse paitsi sitten kun ohjelma suljetaan kokonaan.
Ongelma on, että virtuaalimuistin kasvaessa yli 1GB:n ohjelma ei suostu enää käsittelmään uutta tietoa koska ilmoittaa täydestä muistialueesta.

5

1552

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Torak

      >> Eikä ympäristö itse sitä vapauta itse paitsi
      >> sitten kun ohjelma suljetaan kokonaan.

      Rajaa eri olioitten elinaikaa käyttämällä using lausetta ja Dispose():a, eiköhän se muistin kulutus siitä pienene.

      • hoxhoxhox

        Tein yksinkertasemman projektin ja suljin formeja dispose komennolla ja käytin GC.Collectia lisäksi. Silti virtuaalimuisti ei vähene sulkemisen..


      • Torak
        hoxhoxhox kirjoitti:

        Tein yksinkertasemman projektin ja suljin formeja dispose komennolla ja käytin GC.Collectia lisäksi. Silti virtuaalimuisti ei vähene sulkemisen..

        Tuli mieleen paljonko ohjelmasi käyttää muistia ettei se törmää 1.5Gb (oikeastaan kahden) muisti rajoitukseen.

        http://www.microsoft.com/technet/sysinternals/information/bootini.mspx

        Voihan sitä koittaa pakottaa:
        GC.Collect();
        GC.WaitForPendingFinalizers();

        Sitten tuli mieleen että jos puhutaan windowsin virtuaali muistista niin asetus täytyy olla automaattisella eikä kokojen min ja max välissä että heittovaihtotiedoston koko pienenee. Jotain tämmöistä muistelisin, ei ole muisti loppunut muutamaan vuoteen niin ei muista.


      • hoxhoxhox
        Torak kirjoitti:

        Tuli mieleen paljonko ohjelmasi käyttää muistia ettei se törmää 1.5Gb (oikeastaan kahden) muisti rajoitukseen.

        http://www.microsoft.com/technet/sysinternals/information/bootini.mspx

        Voihan sitä koittaa pakottaa:
        GC.Collect();
        GC.WaitForPendingFinalizers();

        Sitten tuli mieleen että jos puhutaan windowsin virtuaali muistista niin asetus täytyy olla automaattisella eikä kokojen min ja max välissä että heittovaihtotiedoston koko pienenee. Jotain tämmöistä muistelisin, ei ole muisti loppunut muutamaan vuoteen niin ei muista.

        Automaattisella on asetus.
        Kokeilin myös lisätä rivejä:

        GC.Collect();
        GC.WaitForPendingFinalizers();

        if (Environment.OSVersion.Platform == PlatformID.Win32NT)
        {
        SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1);
        }

        Viimeinen if lauseen sisällä saa Mem Usagen tippumaan, mutta jos tarkastelen Windows Task Managerin kautta muistitilanne: Mem Usage pysyy kohtuullisena mutta virtuaalimuisti jatkuu kasvuaan yli gigan jne. ja aiheuttaa ohjelmalle ongelmia. Ohjelmassa avataan ja suljetaan raskaita formeja. Onkohan GC:n muistinkäyttö näin huonoa vai mitähän pitäisi vielä kokeilla..


      • tätä
        hoxhoxhox kirjoitti:

        Automaattisella on asetus.
        Kokeilin myös lisätä rivejä:

        GC.Collect();
        GC.WaitForPendingFinalizers();

        if (Environment.OSVersion.Platform == PlatformID.Win32NT)
        {
        SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1);
        }

        Viimeinen if lauseen sisällä saa Mem Usagen tippumaan, mutta jos tarkastelen Windows Task Managerin kautta muistitilanne: Mem Usage pysyy kohtuullisena mutta virtuaalimuisti jatkuu kasvuaan yli gigan jne. ja aiheuttaa ohjelmalle ongelmia. Ohjelmassa avataan ja suljetaan raskaita formeja. Onkohan GC:n muistinkäyttö näin huonoa vai mitähän pitäisi vielä kokeilla..

        "Onkohan GC:n muistinkäyttö näin huonoa vai mitähän pitäisi vielä kokeilla.."

        Kokeile sitä mitä Torak aiemmin ehdotti, vai onko jokin syy miksi et niin tekisi? Eli:

        "Rajaa eri olioitten elinaikaa käyttämällä using lausetta ja Dispose():a, eiköhän se muistin kulutus siitä pienene."


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Olen tosi outo....

      Päättelen palstajuttujen perusteella mitä mieltä minun kaipauksen kohde minusta on. Joskus kuvittelen tänne selkeitä tap
      Ikävä
      17
      2194
    2. Kotkalainen Demari Riku Pirinen vangittu Saksassa lapsipornosta

      https://www.kymensanomat.fi/paikalliset/8081054 Kotkalainen Demari Riku Pirinen vangittu Saksassa lapsipornon hallussapi
      Kotka
      84
      2148
    3. Oletko sä luovuttanut

      Mun suhteeni
      Ikävä
      101
      1407
    4. Vanhalle ukon rähjälle

      Satutit mua niin paljon kun erottiin. Oletko todella niin itsekäs että kuvittelet että huolisin sut kaiken tapahtuneen
      Ikävä
      10
      1346
    5. Maisa on SALAKUVATTU huumepoliisinsa kanssa!

      https://www.seiska.fi/vain-seiskassa/ensimmainen-yhteiskuva-maisa-torpan-ja-poliisikullan-lahiorakkaus-roihuaa/1525663
      Kotimaiset julkkisjuorut
      84
      1237
    6. Hommaatko kinkkua jouluksi?

      Itse tein pakastimeen n. 3Kg:n murekkeen sienillä ja juustokuorrutuksella. Voihan se olla, että jonkun pienen, valmiin k
      Sinkut
      146
      1188
    7. Aatteleppa ite!

      Jos ei oltaisikaan nyt NATOssa, olisimme puolueettomana sivustakatsojia ja elelisimme tyytyväisenä rauhassa maassamme.
      Maailman menoa
      249
      896
    8. Onko se ikä

      Alkanut haitata?
      Ikävä
      78
      879
    9. Omalääkäri hallituksen utopia?

      Suurissa kaupungeissa ja etelässä moinen onnistunee. Suuressa osassa Suomea on taas paljon keikkalääkäreitä. Mitenkäs ha
      Maailman menoa
      173
      874
    10. Mitä sanoisit

      Ihastukselle, jos näkisitte?
      Tunteet
      63
      854
    Aihe