Etsi ja korjaa muistivuodot Windows 10: ssä

Muistivuoto on sijoitusvirheiden resurssin tietokoneohjelman ilmenneen muistin jakamista. Se tapahtuu, kun käyttämätön RAM-paikka jää julkaisematta. Muistivuotoa ei pidä sekoittaa tilavuotoon, joka tarkoittaa ohjelmaa, joka käyttää enemmän RAM-muistia kuin on tarpeen. Muistivuoto Windows 10/8/7 -järjestelmässä sanotaan tapahtuneen, kun muistiin ei juuri pääse huolimatta siitä, että sitä ei käytetä.

Muistivuodot Windows 10: ssä

Ennen kuin aloitat, sinun on tiedettävä, että muistivuoto on ohjelmistokysymys virheenkorjaamiseksi - esimerkiksi Java, JavaScript, C / C ++, Windows jne. RAM-muistin tai kiintolevyn fyysistä korvaamista ei tarvita.

Muistivuoto Windows 10: ssä

Miksi se on huono

On selvää, että muistivuoto on huono, koska se on vika, järjestelmän virhe. Mutta selvitetään, miten se vaikuttaa järjestelmään:

  1. Koska muisti ei vapaudu, vaikka sitä ei käytettäisikään, se johtaa muistin ehtymiseen.
  2. Muistin loppuminen johtaa ohjelmiston ikääntymiseen.
  3. Vähentynyt käytettävissä oleva muisti lisää vasteaikaa ja järjestelmän heikkoa suorituskykyä.
  4. Tarkistamaton muistivuoto voi lopulta johtaa sovelluksen kaatumiseen.

Muistivuodon tunnistamiseksi ohjelmoijalla on oltava pääsy ohjelman lähdekoodiin.

Vuodon sijainti

Ongelman ratkaisemiseksi meidän on ensin tunnistettava se. Perusvaiheet muistivuodon löytämiseksi ovat:

  1. Vahvistus : Vuodon havaitseminen.
  2. Ytintilan muistivuodon etsiminen : Ytimessä olevan ohjaimen komponentin aiheuttaman vuoton löytäminen.
  3. Käyttäjätilan muistivuodon etsiminen: Käyttäjätilan ohjaimen tai sovelluksen aiheuttaman vuodon löytäminen.

Muistin allokointi

On olemassa erilaisia ​​tiloja, joissa sovellukset varaavat RAM-muistia. Jos tilaa ei vapauteta käytön jälkeen, muistivuoto tapahtuu varaustilasta riippumatta. Joitakin yleisiä allokaatiomalleja ovat:

  1. HealAlloc-funktio kasan muistin allokoimiseksi. C / C ++ -aikavastaavat ovat malloc ja uusia.
  2. VirtualAlloc-toiminto suoralle allokoinnille käyttöjärjestelmästä.
  3. Kernel32-sovellusliittymät sovelluksen ydinmuistin pitämiseen. Esimerkki: CreateFile, CreateThread.
  4. User32-sovellusliittymät ja Gdi32-sovellusliittymät.

Muistivuotojen estäminen

Me kaikki tiedämme, että ehkäisy on parempi kuin parannuskeino, joten tässä on joitain tapoja estää muistivuoto.

Seurantatottumukset

Muistivuodot Windows 10: ssä

Sinun on pidettävä silmällä yksittäisten ohjelmien ja sovellusten epänormaalia RAM-käyttöä. Voit siirtyä Windowsin Tehtävienhallintaan painamalla CTRL + VAIHTO + ESC ja lisätä sarakkeet, kuten kahvat, käyttäjäobjektit, GDI-objektit jne.

Tämä auttaa sinua seuraamaan helposti resurssien käyttöä.

Microsoftin työkalut muistivuotojen diagnosointiin

Erilaiset työkalut diagnosoivat muistivuotoja eri allokointitiloille:

  1. Application Verifier diagnosoi kasan vuotoja.
  2. UMDH (Windows-virheenkorjaustyökalujen komponentti) diagnosoi vuotoja yksittäisille prosesseille seuraamalla kasan muistin varauksia.
  3. Trace Capture analysoi RAM-muistin käytön perusteellisesti.
  4. Myös Xperf seuraa kasan allokointimalleja.
  5. CRT Debug Heap ei vain seuraa kasan allokaatioita, vaan myös mahdollistaa koodauskäytännöt vuotojen minimoimiseksi.
  6. JavaScript-muistivuototunnistin korjaa muistivuodot koodeissa.

Käyttövinkit

  1. Käytä ytimen HANDLE: itä ja muita älykkäitä osoittimia Win32-resursseille ja kasan varauksille.
  2. Hanki luokat automaattista resurssien hallintaa varten ytimen allokoinnille ATL-kirjastosta. C ++ -standardissa on auto_ptr kasan allokoinnille.
  3. Kapseloi COM-käyttöliittymän osoittimet älykkäisiin osoittimiin _com_ptr_t tai _bstr_t tai _variant_t avulla .
  4. Tarkkaile .NET-koodia epänormaalin muistin käytön varalta.
  5. Vältä useita funktioiden poistumisreittejä, jotta varaukset vapautettaisiin muuttujista useimmissa lohkoissa funktion loppuun mennessä.
  6. Käytä natiivipoikkeuksia vasta, kun kaikki varaukset on vapautettu _finally-lohkossa. Kääri kaikki kasan ja käsittelyn varaukset älykkäisiin osoittimiin C ++ -poikkeuksien käyttämiseksi.
  7. Soita aina PropVariantClear- funktiolle ennen PROPVARIANT-objektin uudelleen alustamista tai hävittämistä.

Muistivuotojen vianmääritys Windowsissa

Aivan kuten eri tapoja estää muistivuodot, on olemassa useita tapoja estää muistivuodot. Mutta ennen kuin aloitat, muista ensin luoda järjestelmän palautuspiste.

1] Sulje prosessit ja käynnistä uudelleen.

Jos huomaat tarpeettoman prosessin vievän liikaa RAM-muistia, voit lopettaa prosessin Tehtävienhallinnassa. Sinun on käynnistettävä laite uudelleen, jotta vapautunut tila on käytettävissä muiden prosessien käyttöön. Ilman Uudelleenkäynnistä muistivuotoa ei voida ratkaista. Yksi tietty prosessi, jossa on vikoja tietokoneen hidastamiseksi, on Runtime Broker. Kokeile, toimiiko vain tämän poistaminen käytöstä.

2] Muistidiagnostiikkatyökalut

Windowsin muistidiagnostiikka

Sisäisen Windows-muistin diagnostiikkatyökalun käyttäminen:

  1. Tallenna kaikki tärkeät työt.
  2. Paina Win + R avaa Suorita -ikkuna.
  3. Kirjoita komento mdsched.exe vuonna Suorita ikkunassa.
  4. Käynnistä tietokone uudelleen.
  5. Uudelleenkäynnistyksen jälkeen, suorita skannauksen perustoimintoja tai mennä ' Advanced ' vaihtoehtoja, kuten ' Sekoitetaan ' tai ' Pass laskea '.
  6. Aloita testi painamalla F10 .

Nämä ovat edelleen väliaikaisia ​​korjauksia.

3] Tarkista ohjainpäivitykset

Päivitä ohjainohjelmisto

Vanhentuneet ohjaimet aiheuttavat muistivuotoja. Pidä kaikki ohjaimet ajan tasalla:

  1. Paina Win + R ja avaa Suorita- ikkuna. Kirjoita devmgmt.msc ja paina Enter. Se vie sinut Laitehallintaan .
  2. Tarkista vanhentuneet ohjaimet ja päivitä ne kaikki.
  3. Tarkista päivitykset, jotka saatat olla unohtanut, Windows Update -sivustolta.

Tämä oli yksinkertaista.

4] Optimoi suorituskyky

Säädä parhaan suorituskyvyn saavuttamiseksi

Windowsin säätäminen suorituskyvyn mukaan hallitsee kaiken, myös prosessorin ajoituksen ja muistin käytön muistivuotojen estämiseksi. Toimi seuraavasti:

  1. Napsauta hiiren kakkospainikkeella ' Tämä tietokone ' ja valitse vasemmanpuoleisesta ruudusta Lisäasetukset .
  2. Siirry Lisäasetukset- välilehden kohtaan Suorituskyky ja sen jälkeen Asetukset .
  3. Valitse ' Säädä parhaan suorituskyvyn saavuttamiseksi ' ja napsauta OK .
  4. Käynnistä uudelleen ja tarkista, onko ongelma ratkaistu.

Jos tämä yksinkertainen ratkaisu ei toiminut, kokeile seuraavaa ratkaisua.

5] Poista Käynnistyksen yhteydessä käynnissä olevat ohjelmat käytöstä

Käynnistysohjelmat

Auttavien ohjelmien poistaminen käytöstä on ainoa tapa päästä eroon muistivuodosta. Siirry Tehtävienhallintaan ja poista vianmääritysohjelma käytöstä. Jos et tiedä mitkä ohjelmat aiheuttavat ongelmia, tee tämä:

  1. Siirry Tehtävienhallintaan .
  2. Siirry Käynnistys -kohtaan.
  3. Poista käytöstä käynnistysohjelmat, joita sinun ei tarvitse suorittaa oletuksena.

6] Eheytä kiintolevy

Levyn eheytys

Vaikka Windows 10 tekee tämän puolestasi automaattisesti, sinun on ehkä ajoittain eheytettävä kiintolevyt suorituskyvyn optimoimiseksi:

  1. Siirry kohtaan Tämä tietokone tai Oma tietokone .
  2. Napsauta hiiren kakkospainikkeella järjestelmän kiintolevyä (yleensä C: asema).
  3. Mene ' Työkalut ' alla ' Properties ' ja valitse ' Optimoi '.
  4. Valitse eheytettävä asema ja valitse ' Analysoi '.

Käynnistä tietokone uudelleen uuden sirpaloitumisen jälkeen.

7] ClearPage-tiedosto sammutettuna

Se on nyt monimutkainen - mutta älä huoli. Näin tyhjennät sivutiedoston jokaisessa sammutuksessa:

  • Kirjoita regedit Search käynnistämään Registry Editor.
  • Anna tämä polku:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMuistihallinta
  • Muuta ClearPageFileAtShutDown-arvoksi 1.
  • Tallenna muutokset ja käynnistä laite uudelleen.

Tämän pitäisi tehdä se. Muista, että sammutusprosessisi vie vähän enemmän aikaa.

9] Poista Superfetch käytöstä

Tämä Windows-palvelu optimoi suorituskyvyn minimoimalla käynnistysajan. Sen avulla Windows voi hallita RAM-muistin käyttöä. Elämä Superfetchin poistamisen jälkeen ei ole kätevää, mutta tee se tarvittaessa. Ainakin kokeile tätä yksin ongelman eristämiseksi:

  1. Etsi services.msc ja siirry Services Manageriin.
  2. Etsi " Superfetch " ja napsauta sitä hiiren kakkospainikkeella siirtyäksesi " Ominaisuudet " -kohtaan .
  3. Valitse Pysäytä .
  4. Myös Poista palvelu käytöstä pudotusvalikosta.
  5. Käynnistä tietokone uudelleen ja tarkista, onko suorituskyky parantunut.

Ota Superfetch käyttöön, jos tämä ei toiminut.

10] Tarkista haittaohjelmien varalta

Käytä kolmannen osapuolen virustorjuntaohjelmistoa tai Windows 10: n sisäistä Windows Defender -ohjelmaa haittaohjelmien skannaamiseen ja poistamiseen. Varmista, että virustentorjunta on päivitetty tukemaan käyttöjärjestelmääsi, jotta siitä ei pääse muistivuodon syytä.

Kaikki ratkaisut, joita saatat tarvita muistivuotojen löytämiseksi tai estämiseksi, ovat täällä. Voit lukea lisää muistivuodoista MSDN: ssä ja Microsoftissa.

Original text


Muistivuodot Windows 10: ssä