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

1532

    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. Huomenna teen sen

      Se on nyt päätetty. Pääsen pois tästä epätietosuudesta.
      Ikävä
      78
      3248
    2. Hakkarainen: persut Venäjän ja Pohjois-Korean tiellä

      Hakkarainen entisenä persujen kärkipoliitikkona tietää, mitä puhuu. https://www.is.fi/politiikka/art-2000010422614.html
      Maailman menoa
      200
      1972
    3. Ilouutinen! Anniina Valtonen heitti jymy-yllätyksen - Tämä ei jätä kylmäksi!

      Ohhoh, tämäpä ylläri! Anniina Valtonen sai puolisonsa kanssa lapsen viime vuoden lopulla. Lue lisää: https://www.suomi2
      Suomalaiset julkkikset
      25
      1851
    4. Fuengirola.fi: Kohuissa rypenyt Jari Sillanpää, 58, harvinaisessa haastattelussa: "Minä haluan..."

      Ex-tangokuningas on kertonut kuulumisiaan Espanjan Aurinkorannikolta. Että ei muuta kuin elämässä etiäpäin, Jari Sillanp
      Kotimaiset julkkisjuorut
      27
      1538
    5. Ootko muuten vieläkään hiffannut

      Että en kuulu sinun maailmaasi? On meissä samaa, ja samaa aaltopituutta oli, mutta tunsin oloni usein hyvin vaivautuneek
      Ikävä
      166
      1395
    6. Miten nyt sanoisin

      tämän sinulle. Oletko mielessäni päivittäin, kysyin itseltäni ja vastaus oli, kyllä olet. Yllätyin, päädyin oudoille tei
      Ikävä
      88
      1375
    7. Susta on tullut

      Ihana nainen. ❤️
      Ikävä
      52
      1099
    8. Mistä vuodesta

      lähtien olet ikävöinyt kaivattuasi?
      Ikävä
      97
      1038
    9. Tämä ei voi jatkua

      Näin. Eilisen jälkeen tulin siihen tulokseen.
      Ikävä
      55
      844
    10. Voitko vain unohtaa

      Minut. En ole sinun arvoisesi
      Ikävä
      59
      830
    Aihe