Etsi ja korjaa muistivuotoja Windows 11/10:ssä
Muistivuoto on resurssien väärinsijoittelu tietokoneohjelmassa, joka johtuu virheellisestä muistin allokoinnista . (Memory Leak)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. Windows 11/10/8/7 -järjestelmän muistivuodon sanotaan tapahtuneen, kun muistia ei vain voida käyttää, vaikka sitä ei käytetä.
Muistivuotoja Windows 11/10:ssä
Ennen kuin aloitat, sinun tulee tietää, että muistivuoto(Memory) on ohjelmistoongelma, jota voidaan korjata – esimerkiksi Javassa(Java) , JavaScriptissä(JavaScript) , C/C++:ssa, Windowsissa(Windows) jne. RAM -muistin tai kiintolevyn fyysistä vaihtamista ei vaadita.
Miksi se on huono
On selvää, että muistivuoto on huono, koska se on bugi, virhe järjestelmässä. Mutta katsotaanpa, kuinka se tarkalleen vaikuttaa järjestelmään:
- Koska muisti ei vapaudu, vaikka sitä ei käytetä, se johtaa muistin ehtymiseen.
- Muistin loppuminen johtaa ohjelmistojen vanhenemiseen.
- Vähentynyt käytettävissä oleva muisti johtaa pidentyneeseen vasteaikaan ja järjestelmän huonoon suorituskykyyn.
- Tarkistamaton muistivuoto voi lopulta johtaa sovelluksen kaatumiseen.
Muistivuodon tunnistamiseksi ohjelmoijalla on oltava pääsy ohjelman lähdekoodiin.
Vuodon paikantaminen
Ongelman ratkaisemiseksi meidän on ensin tunnistettava se. Perusvaiheet muistivuodon paikallistamiseksi ovat:
- Vahvistus(Affirmation) : Sen määrittäminen, onko vuoto tapahtunut.
- Ydintilan muistivuodon etsiminen(Finding Kernel-mode memory leak) : Ydintilan ohjainkomponentin aiheuttaman vuodon paikantaminen.
- Käyttäjätilan muistivuodon etsiminen(Finding User-mode memory leak) : Käyttäjätilan ohjaimen tai sovelluksen aiheuttaman vuodon paikantaminen.
Muistin varaus
On olemassa erilaisia tiloja, joissa sovellukset varaavat RAM -muistia . Jos tilaa ei vapaudu käytön jälkeen, tapahtuu muistivuoto allokointitavasta riippumatta. Joitakin yleisiä jakomalleja ovat:
- HealAlloc- toiminto keon muistin varaamiseen. C/C++-ajonaikaiset vastineet ovat malloc ja uusia.
- VirtualAlloc -toiminto suoraan allokointiin käyttöjärjestelmästä.
- Kernel32-sovellusliittymät(Kernel32 APIs) ytimen muistin säilyttämiseen sovellukselle. Esimerkki(Example) , CreateFile , CreateThread .
- User32 API:t ja Gdi32 API:t.
Estä muistivuodot Windowsissa
Tiedämme kaikki, että ennaltaehkäisy on parempi kuin hoito, joten tässä on joitain tapoja estää muistivuoto.
Seurantatottumukset
Sinun on pidettävä silmällä yksittäisten ohjelmien ja sovellusten epänormaalia RAM - käyttöä. Voit siirtyä Windowsin Tehtävienhallintaan(Windows Task Manager) painamalla CTRL+SHIFT+ESC ja lisäämällä sarakkeet, kuten Handles , User Objects , GDI Objects jne.
Tämä auttaa sinua helposti seuraamaan resurssien käyttöä.
Lue(Read) : Mitkä ovat tietokoneen muistityypit?(What are the Types of Memory in a computer?)
Microsoftin(Microsoft) työkalut muistivuotojen diagnosointiin
Eri työkalut diagnosoivat muistivuotoja eri allokointitiloissa:
- Application Verifier diagnosoi kasavuodot.
- UMDH ( Windows Debugging Toolsin(Windows Debugging Tools) komponentti ) diagnosoi yksittäisten prosessien vuodot tarkkailemalla keon muistin varauksia.
- Trace Capture RAM -muistin käytön perusteelliseen analysointiin .
- Myös Xperf seuraa kasan kohdistusmalleja.
- CRT Debug Heap ei ainoastaan seuraa keon varauksia, vaan mahdollistaa myös koodauskäytännöt vuotojen minimoimiseksi.
- JavaScript Memory Leak Detector korjaa muistivuotoja koodeissa.
Käyttövinkkejä
- Käytä ytimen HANDLE :ia ja muita älykkäitä osoittimia Win32 - resursseihin ja keon varauksiin.
- Hanki(Get) luokat automaattista resurssienhallintaa varten ytimen allokoinneille ATL - kirjastosta. C++-standardissa on auto_ptr keon varauksille.
- Kapseloi COM(Encapsulate COM) -liitäntäosoittimet "älykkäisiin osoittimiin" _com_ptr_t :n tai _bstr_t :n tai _variant_t :n avulla .
- Tarkkaile (Monitor).NET - koodia epänormaalin muistin käytön varalta.
- Vältä(Avoid) useita poistumispolkuja funktioille, jotta varaukset vapautuvat muuttujista useimmissa lohkoissa funktion loppuun mennessä.
- Käytä(Use) alkuperäisiä poikkeuksia vasta, kun olet vapauttanut kaikki _finally- lohkon allokaatiot. Kääri(Wrap) kaikki kasa ja käsittele allokaatiot älykkäiksi osoittimiin käyttääksesi C++-poikkeuksia.
- Kutsu aina PropVariantClear- funktio ennen PROPVARIANT- objektin uudelleenalustamista tai hylkäämistä.
(Troubleshoot)Muistivuotojen vianmääritys Windowsissa(Windows)
Aivan kuten eri tapoja estää muistivuotoja, on olemassa erilaisia tapoja pysäyttää muistivuodot. Mutta ennen kuin aloitat, muista luoda ensin järjestelmän palautuspiste .
1] Sulje prosessit ja käynnistä uudelleen.
Jos näet, että tarpeeton prosessi vie liikaa RAM -muistia , voit lopettaa prosessin Task Managerissa(Task Manager) . Sinun on käynnistettävä laite uudelleen, jotta vapautunut tila on muiden prosessien käytettävissä. Muistivuotoongelma(Restart) ei ratkea ilman uudelleenkäynnistystä. Yksi erityinen prosessi, jossa on virheitä hidastaakseen PC:tä, on Runtime Broker . Kokeile, toimiiko sen poistaminen yksinään.
2] Muistin diagnostiikkatyökalut
Sisäänrakennetun Windows - muistin diagnostiikkatyökalun käyttäminen:(Memory Diagnostic Tool)
- Tallenna kaikki tärkeät työsi.
- Paina Win + R avataksesi Suorita(Run) - ikkunan.
- Kirjoita Suorita(Run) - ikkunaan komento mdsched.exe .
- Käynnistä tietokone uudelleen.
- Suorita uudelleenkäynnistyksen jälkeen perusskannaus tai valitse Lisäasetukset(Advanced) , kuten Testisekoitus(Test mix) tai Läpäisymäärä(Pass count) .
- Aloita testi painamalla F10 .
Nämä ovat edelleen väliaikaisia korjauksia.
3] Tarkista ohjainpäivitykset
Vanhentuneet ohjaimet aiheuttavat muistivuotoja. Pidä kaikki ajurit ajan tasalla :
- Paina Win + R ja avaa Suorita(Run) - ikkuna. Kirjoita devmgmt.msc ja paina Enter . Se vie sinut Laitehallintaan(Device Manager) .
- Tarkista(Check) vanhentuneet ohjaimet ja päivitä ne kaikki.
- Jos sinulla on ehkä jäänyt huomaamatta päivitykset, tarkista Windows Update .
Tämä oli yksinkertaista.
4] Optimoi suorituskyky
Windowsin suorituskyvyn säätäminen hallitsee kaikkea, mukaan lukien prosessorin ajoitus ja muistin käyttö muistivuotojen estämiseksi. Toimi seuraavasti:
- Napsauta hiiren kakkospainikkeella kohtaa " Tämä tietokone(This PC) " ja valitse vasemmasta ruudusta " Lisäasetukset ".(Advanced)
- Siirry Lisäasetukset(Advanced) -välilehden kohtaan Suorituskyky(Performance) ja sen jälkeen Asetukset(Settings) .
- Valitse " Säädä parhaan suorituskyvyn saavuttamiseksi(Adjust for best performance) " ja napsauta OK .
- Käynnistä uudelleen(Restart) ja tarkista, onko ongelma ratkaistu.
Jos tämä yksinkertainen ratkaisu ei toimi, kokeile seuraavaa ratkaisua.
5] Poista käynnistyksen(Startup) yhteydessä käynnissä olevat ohjelmat käytöstä(Programs)
Ongelmallisten ohjelmien poistaminen käytöstä on ainoa tapa päästä eroon muistivuoto-ongelmasta. Siirry Task Manageriin(Task Manager) ja poista vianmääritysohjelma käytöstä. Jos et tiedä, mitkä ohjelmat aiheuttavat ongelmia, toimi näin:
- Siirry kohtaan " Task Manager ".
- Siirry kohtaan " Käynnistys(Startup) ".
- Poista käytöstä käynnistysohjelmat, joita(Disable the startup programs) sinun ei tarvitse ajaa oletuksena.
6] Eheytä kiintolevy
Vaikka Windows 10 tekee tämän puolestasi automaattisesti, saatat joutua eheyttämään kiintolevyt ajoittain suorituskyvyn optimoimiseksi:
- Siirry kohtaan " Tämä tietokone(This PC) " tai " Oma tietokone(My Computer) ".
- Napsauta hiiren kakkospainikkeella(Right-Click) järjestelmän kiintolevyä (yleensä C: asema).
- Siirry ' Ominaisuudet ' -kohdan ' (Properties)Työkalut(Tools) ' -kohtaan ja valitse ' Optimoi(Optimize) '.
- Valitse defragoitava asema ja valitse Analysoi(Analyze) .
Käynnistä tietokone uudelleen uuden pirstoutumisen jälkeen.
7] ClearPage-tiedosto sammutettaessa
Se on nyt monimutkaista, mutta älä huoli. Voit tyhjentää sivutiedoston jokaisen sammutuksen yhteydessä(clear the Page File at every shutdown) seuraavasti:
- Kirjoita hakuun (Search)regedit käynnistääksesi rekisterieditorin(Registry Editor) . _
- Anna tämä polku:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
- Muuta ClearPageFileAtShutDown arvoksi "1".( ClearPageFileAtShutDown to ‘1’.)
- Tallenna muutokset ja käynnistä(Restart) laite uudelleen.
Tämän pitäisi tehdä se. Muista, että sammutusprosessi kestää hieman kauemmin.
9] Poista Superfetch käytöstä
Tämä Windows-palvelu(Windows Service) optimoi suorituskyvyn minimoimalla käynnistysajan. Sen avulla Windows voi hallita RAM -muistin käyttöä. Elämä (Life)Superfetchin(Superfetch) poistamisen jälkeen ei ole mukavaa, mutta tee se tarvittaessa. Kokeile ainakin tätä yksin ongelman eristämiseksi:
- Hae services.msc ja siirry Services Manageriin.
- Etsi " Superfetch " ja napsauta sitä hiiren kakkospainikkeella siirtyäksesi " Ominaisuudet(Properties) " -kohtaan.
- Valitse ' Pysäytä(Stop) '.
- Myös " Poista(Disable) " palvelu avattavasta valikosta.
- Käynnistä tietokone uudelleen ja tarkista, onko suorituskyky parantunut.
Ota Superfetch käyttöön, jos tämä ei toiminut.
10] Tarkista haittaohjelmat
Käytä kolmannen osapuolen virustorjuntaohjelmistoa tai Windows 10:n sisäistä Windows Defenderiä(Windows Defender) haittaohjelmien tarkistamiseen ja poistamiseen. Varmista(Make) , että virustorjunta on päivitetty tukemaan käyttöjärjestelmääsi, jotta se ei päädy syynä muistivuotoon.
Jokainen ratkaisu, jota saatat joskus tarvita löytää tai estää muistivuotoja, on täällä. Voit lukea lisää muistivuodoista MSDN :ssä ja Microsoftissa(Microsoft) .
Related posts
Small Memory Dump (dmp) -tiedostojen avaaminen ja lukeminen Windows 11/10:ssä
Windows Memory Diagnostics Toolin käyttäminen Windows 11/10:ssä
Sivutiedoston koon tai virtuaalimuistin lisääminen Windows 11/10:ssä
Crash Dump -tiedoston luominen manuaalisesti Windows 11/10:ssä
Explorer.exe runsaasti muistia tai suorittimen käyttö Windows 11/10:ssä
Korjaa Microsoft Edge High -muistin käyttö Windows 11/10:ssä
Kuinka testata verkkokameraa Windows 11/10:ssä? Toimiiko se?
Kuinka korjata 100 % levyn, korkean suorittimen ja suuren muistin käyttö Windows 11/10:ssä
Ryhmäkäytäntöeditorin lisääminen Windows 11/10 Home Editioniin
Verkkoaseman yhdistäminen tai FTP-aseman lisääminen Windows 11/10:ssä
PDF-teksti katoaa, kun tiedostoa muokataan tai tallennetaan Windows 11/10:ssä
Varmuuskopioi, siirrä tai poista PageFile.sys sammutettaessa Windows 11/10:ssä
HDMI-toistolaite ei näy Windows 11/10:ssä
Kuinka tarkistaa prosessorin välimuistin koko Windows 11/10:ssä
Korjaa Chromen korkean suorittimen, muistin tai levyn käyttö Windows 11/10:ssä
Aseta Notepad++ oletuseditoriksi .xml-tiedostoille Windows 11/10:ssä
Mikä on Windows.edb-tiedosto Windows 11/10:ssä
Kuinka tarkistaa sammutus- ja käynnistysloki Windows 11/10:ssä
Mikä on PPS-tiedosto? Kuinka muuntaa PPS PDF:ksi Windows 11/10:ssä?
Ota käyttöön tai poista käytöstä ytimen eristäminen ja muistin eheys Windows 11/10:ssä