Finn og reparer minnelekkasjer i Windows 10/8/7

Innholdsfortegnelse:

Finn og reparer minnelekkasjer i Windows 10/8/7
Finn og reparer minnelekkasjer i Windows 10/8/7
Anonim

EN Hukommelsestap er en feilplassering av ressurs i et dataprogram på grunn av feil minneallokering. Det skjer når en RAM-plassering som ikke er i bruk, forblir utelatt. En minnelekkasje må ikke forveksles med et romlekkasje, som refererer til et program som bruker mer RAM enn nødvendig. En minnelekkasje på et Windows 10/8/7-system sies å ha funnet sted når minnet ikke er tilgjengelig, til tross for at det ikke er i bruk.

Minnelekkasjer i Windows 10

Før du begynner, bør du vite at Minnelekkasje er et programvareproblem for å feilsøke - for eksempel i Java, JavaScript, C / C ++, Windows, etc. Fysisk utskifting av RAM eller harddisk er ikke nødvendig.

Image
Image

Hvorfor er det dårlig

Det er åpenbart at en minnelekkasje er dårlig fordi det er en feil, en feil i systemet. Men la oss finne ut hvordan akkurat det påvirker systemet:

  1. Siden minnet ikke frigjøres, selv om det ikke er i bruk, resulterer det i minneutarmning.
  2. Utmattelse av minnet resulterer i programvare aldring.
  3. Redusert tilgjengelig minne fører til økt responstid og dårlig ytelse av systemet.
  4. Ukontrollert minnelekkasje kan etter hvert føre til krasj av et program.

For å identifisere et minnelekkasje, må en programmerer ha tilgang til kildekoden til programmet.

Finne lekkasjen

For å løse et problem må vi identifisere det først. De grunnleggende trinnene for å finne en minnelekkasje er:

  1. Bekreftelse: Bestemme om det har oppstått lekkasje.
  2. Finne kjerne-modus minne lekkasje: Finne en lekkasje forårsaket av en kjernemodusdriverkomponent.
  3. Finne brukermodushukommelse: Finne en lekkasje forårsaket av brukermodusdriver eller app.

Minneallokering

Det er forskjellige moduser der applikasjoner allokerer RAM. Hvis plassen ikke frigjøres etter bruk, vil minnelekkasjen oppstå uavhengig av modusen for tildeling. Noen vanlige tildelingsmønstre er:

  1. HealAlloc funksjon for heap minne allokering. C / C ++-kjøretidsekvivalenter er malloc og nye.
  2. VirtualAlloc funksjon for direkte tildeling fra OS.
  3. Kernel32 APIer for å holde kjerneminnet for appen. Eksempel, CreateFile, CreateThread.
  4. User32 APIer og Gdi32 APIer.

Forhindre hukommelse lekkasjer

Vi vet alle at forebygging er bedre enn kur, så her er noen måter å forhindre minnelekkasje på.

Overvåkning vaner

Image
Image

Du må holde øye med unormal RAM-bruk ved hjelp av individuelle programmer og programmer. Du kan gå til Windows Oppgavebehandling ved å trykke CTRL + SHIFT + ESC og legg til kolonnene som Håndtak, Brukerobjekter, GDI-objekter, etc.

Dette vil hjelpe deg med å enkelt overvåke ressursbruk.

Microsoft-verktøy for å diagnostisere minnelekkasjer

Ulike verktøy diagnostiserer hukommelseslekkasjer for ulike tildelingsmoduser:

  1. Program Verifier diagnostiserer hekklekkasje.
  2. UMDH (en komponent av Windows Debugging Tools) diagnostiserer lekkasjer for individuelle prosesser ved å overvåke heapminneallokeringer.
  3. Trace Capture for en grundig analyse av RAM-bruk.
  4. Xperf sporer også heapfordelingsmønstre.
  5. CRT Debug Heap sporer ikke bare heapallokeringer, men gir også kodingspraksis for å minimere lekkasjer.
  6. JavaScript Memory Leak Detector debugger hukommelse lekkasjer i koder.

Brukstips

  1. Bruk kjernen HÅNDTAKs og andre smarte pekere for Win32 ressurser og heap allokeringer.
  2. Få klasser for automatisk ressursadministrasjon for kjerneallokeringer fra ATL-biblioteket. C + + standard har auto_ptr for heap allokering.
  3. Encapsulate COM grensesnitt pointers innenfor "smart pointers" ved hjelp av _com_ptr_t eller _bstr_t eller _variant_t.
  4. Overvåk.NET-koden for unormal minnebruk.
  5. Unngå flere utgangsstier for funksjoner som lar frigjøringer frigjøres fra variabler i de fleste blokker ved slutten av en funksjon.
  6. Bruk bare innfødte unntak etter at du har frigjort alle tildelinger i _finalblokken. Wrap all heap og håndtere tildelinger i smarte pekere for å kunne bruke C ++ unntak.
  7. Ring alltid på PropVariantClear funksjonen før gjenoppretting eller kassering av et PROVARIANT objekt.

Feilsøking av minnelekkasjer i Windows

På samme måte som de forskjellige måtene for å forhindre minnelekkasjer, finnes det ulike måter å stoppe minnelekkasjer.

1] Lukk prosesser og start på nytt.

Hvis du ser en unødvendig prosess, tar du for mye RAM, du kan avslutte prosessen i Oppgavebehandling. Du må starte enheten på nytt slik at den frigjorte plassen er tilgjengelig for bruk av andre prosesser. Uten et Restart minne lekkasje problemet ikke vil bli løst. En bestemt prosess som har bugs for å senke PCen er Runtime Broker. Prøv å deaktivere det alene fungerer.

2] Memory Diagnostic Tools

Image
Image

Å få tilgang til det innebygde minnediagnostiske verktøyet for Windows:

  1. Lagre alt ditt viktige arbeid.
  2. trykk Vinn + R å åpne Løpe vindu.
  3. Skriv inn kommandoen mdsched.exe i Løpe vindu.
  4. Start PCen på nytt.
  5. Etter en omstart, utfør en grunnleggende skanning eller gå til " Avansert'Alternativer som' Testblanding'Eller' Pass teller ’.
  6. trykk F10 å starte testen.

Disse er fremdeles midlertidige rettelser.

3] Se etter Driver oppdateringer

Utdaterte drivere forårsaker minnelekkasje. Hold alle drivere oppdatert:
Utdaterte drivere forårsaker minnelekkasje. Hold alle drivere oppdatert:
  1. trykk Vinn + R og åpne Løpe vindu. Type devmgmt.msc og trykk på Enter. Det tar deg til Enhetsbehandling.
  2. Sjekk etter utdaterte drivere og oppdatere dem alle.
  3. For oppdateringer du kanskje har gått glipp av, sjekk inn Windows Update.

Dette var enkelt.

4] Optimaliser ytelsen

Justering av Windows for ytelse vil håndtere alt, inkludert prosessorplanlegging og minnebruk for å stoppe minnelekkasjer. Følg disse instruksjonene:
Justering av Windows for ytelse vil håndtere alt, inkludert prosessorplanlegging og minnebruk for å stoppe minnelekkasjer. Følg disse instruksjonene:
  1. Høyreklikk på ' Denne PCen'Og velg' Avansert'Innstillinger i venstre rute.
  2. Under ' Avansert'Kategorien, gå til' Opptreden', etterfulgt av ' innstillinger ’.
  3. Kryss av ' Juster for best ytelse'Og klikk OK.
  4. Start på nytt og kontroller om problemet er løst.

Hvis denne enkle løsningen ikke fungerte, prøv den neste løsningen.

5] Deaktiver programmer som kjører ved oppstart

Deaktivering av de plagsomme programmene er den eneste måten å kvitte seg med minnelekkasjeproblemet. Gå til Oppgavebehandling og deaktiver feilsøkingsprogrammet. Hvis du ikke vet hvilke programmer som skaper problemer, gjør du dette:
Deaktivering av de plagsomme programmene er den eneste måten å kvitte seg med minnelekkasjeproblemet. Gå til Oppgavebehandling og deaktiver feilsøkingsprogrammet. Hvis du ikke vet hvilke programmer som skaper problemer, gjør du dette:
  1. Gå til ' Oppgavebehandling ’.
  2. Gå til ' oppstart ’.
  3. Deaktiver oppstartsprogrammene du ikke trenger å kjøre som standard.

6] Defrag Harddisk

Selv om Windows 10 gjør dette for deg automatisk, må du kanskje defragtere harddiskene noen ganger for å optimalisere ytelsen:
Selv om Windows 10 gjør dette for deg automatisk, må du kanskje defragtere harddiskene noen ganger for å optimalisere ytelsen:
  1. Gå til ' Denne PCen'Eller' Datamaskinen min ’.
  2. Høyreklikk systemets harddisk (vanligvis C: stasjon).
  3. Gå til ' Verktøy'Under' Eiendommer'Og velg' Optimal ’.
  4. Velg stasjonen for å defragmentere og velg ' Analysere ’.

Start datamaskinen på nytt etter den nye fragmenteringen.

7] ClearPage-fil ved avslutning

Det blir komplisert nå - men ikke bekymre deg. Slik fjerner du sidefilen ved hver avslutning:

  1. Type regedit på Søk for å starte Registerredigering.
  2. Skriv inn denne banen: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
  3. Endre verdien av ClearPageFileAtShutDown til '1'.
  4. Lagre endringene og Start enheten på nytt.

Dette burde gjøre det.

9] Deaktiver Superfetch

Denne Windows-tjenesten optimaliserer ytelsen ved å minimere oppstartstid. Det lar Windows administrere RAM-bruk. Livet etter deaktivering av Superfetch er ikke praktisk, men gjør det hvis du må. Prøv dette i det minste for å isolere problemet:

  1. Søke services.msc og gå til Services Manager.
  2. Se etter ' SuperFetch'Og høyreklikk det for å gå til' Eiendommer ’.
  3. Å velge ' Stoppe ’.
  4. Også ' Deaktiver'Tjenesten fra rullegardinmenyen.
  5. Start PCen på nytt og kontroller om ytelsen har forbedret seg.

Aktiver Superfetch hvis denne ikke fungerte.

10] Sjekk etter skadelig programvare

Bruk en tredjeparts antivirusprogramvare eller Windows 10s interne Windows Defender til å skanne og eliminere skadelig programvare. Kontroller at antivirusprogrammet er oppdatert for å støtte operativsystemet, slik at det ikke blir grunnen til minnelekkasjen.

Hver løsning du kanskje trenger for å finne eller forhindre hukommelse lekkasjer er her. Du kan lese mer om minnelekkasjer på MSDN og Microsoft.

Relaterte innlegg:

  • Løs Windows Stopp Feil eller Blå Skjerm av Død
  • Hvorfor viser Windows mindre RAM enn installert?
  • Gjør Windows 10 Start, Kjør, Avslutt Faster
  • Fysiske minnegrenser i Crash Dump-filer for Windows 10/8/7
  • Minnekomprimering i Windows 10

Anbefalt: