Hukommelse

Sådan finder du og retter hukommelseslækage i Windows 10

Sådan finder du og retter hukommelseslækage i Windows 10

EN Hukommelsestab er en forkert placering af ressourcer i et computerprogram på grund af defekt hukommelsestildeling. Det sker, når en RAM-placering, der ikke er i brug, forbliver frigivet. En hukommelseslækage må ikke forveksles med en pladslækage, der refererer til et program, der bruger mere RAM end nødvendigt. En hukommelseslækage på et Windows 10/8/7 system siges at have fundet sted, når hukommelsen bare ikke er tilgængelig på trods af at den ikke er i brug.

Hukommelseslækage i Windows 10

Før du begynder, skal du vide, at hukommelseslækage er et softwareproblem, der skal fejles - for eksempel i Java, JavaScript, C / C ++, Windows osv. Fysisk udskiftning af RAM eller harddisk er ikke påkrævet.

Hvorfor er det dårligt

Det er tydeligt, at en hukommelseslækage er dårlig, fordi det er en fejl, en fejl i systemet. Men lad os finde ud af, hvordan det nøjagtigt påvirker systemet:

  1. Da hukommelsen ikke frigøres, selv når den ikke er i brug, resulterer den i udtømning af hukommelsen.
  2. Udmattelse af hukommelsen resulterer i ældning af software.
  3. Reduceret tilgængelig hukommelse fører til øget responstid og dårlig ydelse fra systemet.
  4. En ukontrolleret hukommelseslækage kan i sidste ende føre til nedbrud af en applikation.

For at identificere en hukommelseslækage skal en programmerer have adgang til programmets kildekode.

Find lækagen

For at løse et problem skal vi først identificere det. De grundlæggende trin til lokalisering af en hukommelseslækage er:

  1. Bekræftelse: Bestemmelse af, om der er sket en lækage.
  2. At finde hukommelseslækage i kernemodus: Lokalisering af en lækage forårsaget af en komponent i kernetilstandsdriveren.
  3. Findning af hukommelseslækage i brugertilstand: Find en lækage forårsaget af en bruger-mode driver eller app.

Hukommelsestildeling

Der er forskellige tilstande, hvor applikationer tildeler RAM. Hvis der ikke frigøres plads efter brug, vil hukommelseslækagen opstå uanset tildelingsmetoden. Nogle almindelige fordelingsmønstre er:

  1. HealAlloc-funktion til allokering af bunkehukommelse. C / C ++ runtime-ækvivalenter er malloc og nye.
  2. VirtualAlloc-funktion til direkte tildeling fra OS.
  3. Kernel32 API'er til at indeholde kernehukommelse til appen. Eksempel, CreateFile, CreateThread.
  4. User32 API'er og Gdi32 API'er.

Forebyggelse af hukommelseslækage

Vi ved alle, at forebyggelse er bedre end helbredelse, så her er nogle måder at forhindre hukommelseslækage på.

Overvågningsvaner

Du skal holde øje med unormal RAM-brug af individuelle programmer og applikationer. Du kan gå til Windows Jobliste ved at trykke på CTRL + SKIFT + ESC og tilføj kolonnerne som håndtag, brugerobjekter, GDI-objekter osv.

Dette hjælper dig med let at overvåge ressourceforbrug.

Læs: Hvad er typer hukommelse på en computer?

Microsoft-værktøjer til diagnosticering af hukommelseslækager

Forskellige værktøjer diagnosticerer hukommelseslækager til forskellige tildelingsformer:

  1. Applikationsverifikator diagnosticerer dyngelækager.
  2. UMDH (en komponent i Windows fejlfindingsværktøjer) diagnosticerer lækager til individuelle processer ved at overvåge allokering af bunkehukommelse.
  3. Trace Capture giver en grundig analyse af RAM-brugen.
  4. Xperf sporer også bunkefordelingsmønstre.
  5. CRT Debug Heap sporer ikke kun bunktildelinger, men muliggør også kodning for at minimere lækager.
  6. JavaScript Memory Leak Detector fejler hukommelseslækage i koder.

Tip til brug

  1. Brug kernen HÅNDTEREs og andre smarte pointer til Win32-ressourcer og bunktildelinger.
  2. Få klasser til automatisk ressourcestyring til kernetildelinger fra ATL-biblioteket. C ++ standard har auto_ptr til bunktildelinger.
  3. Indkapsle COM-interface-pointer i "smarte pointers" ved hjælp af _com_ptr_t eller _bstr_t eller _variant_t.
  4. Overvåg .NET-kode til unormal hukommelsesforbrug.
  5. Undgå flere udgangsstier for funktioner for at lade allokeringer frigøres fra variabler i de fleste blokke ved afslutningen af ​​en funktion.
  6. Brug kun indfødte undtagelser efter frigørelse af alle tildelinger i _finally-blokken. Pak alle bunker og håndter allokeringer i smarte pointer for at bruge C ++ undtagelser.
  7. Ring altid til PropVariantClear funktion, før du geninitialiserer eller kasserer en PROPVARIANT genstand.

Fejlfinding af hukommelseslækager i Windows

Ligesom de forskellige måder at forhindre hukommelseslækage på, er der forskellige måder at stoppe hukommelseslækage på. Men inden du begynder, skal du huske at oprette et systemgendannelsespunkt først.

1] Luk processer og genstart.

Hvis du ser, at en unødvendig proces tager for meget RAM, kan du afslutte processen i Jobliste. Du bliver nødt til at genstarte enheden, så den frigjorte plads er tilgængelig til brug af andre processer. Uden et problem med genstart af hukommelse løses ikke. En bestemt proces, der har fejl for at bremse pc'en, er Runtime Broker. Prøv, hvis deaktivering af det alene virker.

2] Hukommelsesdiagnosticeringsværktøjer

Sådan får du adgang til det indbyggede hukommelsesdiagnosticeringsværktøj til Windows:

  1. Gem alt dit vigtige arbejde.
  2. Trykke Vind + R at åbne Løb vindue.
  3. Skriv kommandoen mdsched.exe i Løb vindue.
  4. Genstart pc'en.
  5. Efter en genstart skal du udføre en grundlæggende scanning eller gå til 'Fremskreden'muligheder som'Testmix'eller'Bestået antal''.
  6. Trykke F10 for at starte testen.

Disse er stadig midlertidige rettelser.

3] Kontroller for driveropdateringer

Forældede drivere forårsager hukommelseslækage. Hold alle drivere opdateret:

  1. Trykke Vind + R og åbn Løb vindue. Type devmgmt.msc og tryk på Enter. Det tager dig til Enhedshåndtering.
  2. Se efter forældede drivere, og opdater dem alle.
  3. For opdateringer, du muligvis har gået glip af, skal du tjekke i Windows Update.

Dette var simpelt.

4] Optimer ydeevnen

Justering af Windows til ydelse styrer alt inklusive processorplanlægning og hukommelsesforbrug for at stoppe hukommelseslækage. Følg disse trin:

  1. Højreklik på 'Denne pc'og vælg'Fremskreden'indstillinger i venstre rude.
  2. Under 'Fremskredenfane, gå til 'Ydeevne', efterfulgt af 'Indstillinger''.
  3. Kontrollere 'Juster for at få den bedste ydelseog klik Okay.
  4. Genstart og kontroller, om problemet er løst.

Hvis denne enkle løsning ikke fungerede, kan du prøve den næste løsning.

5] Deaktiver programmer, der kører ved opstart

Deaktivering af de besværlige programmer er den eneste måde at slippe af med hukommelseslækage-problemet. Gå til Jobliste, og deaktiver fejlfindingsprogrammet. Hvis du ikke ved, hvilke programmer der skaber problemer, skal du gøre dette:

  1. Gå til 'Jobliste''.
  2. Gå til 'Start op''.
  3. Deaktiver startprogrammerne, som du ikke har brug for at køre som standard.

6] Defrag harddisk

Selvom Windows 10 gør dette automatisk for dig, skal du muligvis defragmentere harddiskene lejlighedsvis for at optimere ydeevnen:

  1. Gå til 'Denne pc'eller'Min computer''.
  2. Højreklik på systemets harddisk (normalt C: drev).
  3. Gå til 'Værktøjer'under'Ejendomme'og vælg'Optimer''.
  4. Vælg det drev, der skal defragmenteres, og vælg 'Analysere''.

Genstart computeren efter den nye fragmentering.

7] ClearPage-fil ved lukning

Det bliver komplekst nu - men rolig. Sådan ryddes sidefilen ved hver nedlukning:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management

Dette burde gøre det. Husk at din nedlukningsproces vil tage lidt mere tid.

9] Deaktiver Superfetch

Denne Windows-service optimerer ydelsen ved at minimere opstartstiden. Det lader Windows styre RAM-brug. Livet efter deaktivering af Superfetch er ikke praktisk, men gør det, hvis du skal. I det mindste prøv dette alene for at isolere problemet:

  1. Søg tjenester.msc og gå til Services Manager.
  2. Lede efter 'Superhentning'og højreklik på det for at gå til'Ejendomme''.
  3. Vælg 'Hold op''.
  4. Også 'Deaktiver'tjenesten fra rullemenuen.
  5. Genstart pc'en og kontroller, om ydelsen er forbedret.

Aktivér Superfetch, hvis denne ikke fungerede.

10] Se efter malware

Brug en tredjeparts antivirussoftware eller Windows 10's interne Windows Defender til at scanne og eliminere malware. Sørg for, at antivirusprogrammet er opdateret til at understøtte dit operativsystem, så det ikke ender med at blive årsagen til hukommelseslækagen.

Hver løsning, du muligvis nogensinde har brug for for at finde eller forhindre hukommelseslækage, er lige her. Du kan læse mere om hukommelseslækage på MSDN og Microsoft.

Sådan vises OSD-overlay i fuldskærms Linux-apps og -spil
Afspilning af fuldskærmsspil eller brug af apps i distraktionsfri fuldskærmstilstand kan afskære dig fra relevante systemoplysninger, der er synlige i...
Top 5 spiloptagelseskort
Vi har alle set og elsket streaming af gameplay på YouTube. PewDiePie, Jakesepticye og Markiplier er kun nogle af de bedste spillere, der har tjent mi...
Sådan udvikler du et spil på Linux
For et årti siden ville ikke mange Linux-brugere forudsige, at deres foretrukne operativsystem en dag ville være en populær spilplatform til kommercie...