Find og ret hukommelseslækager i Windows 11/10
En hukommelseslækage(Memory Leak) er en fejlplacering af ressourcer i et computerprogram på grund af fejlagtig hukommelsesallokering. Det sker, når en RAM- placering, der ikke er i brug, forbliver ufrigivet. En hukommelseslæk skal ikke forveksles med en pladslæk, som henviser til et program, der bruger mere RAM end nødvendigt. En hukommelseslækage på et Windows 11/10/8/7 system siges at have fundet sted, når hukommelsen bare ikke er tilgængelig, selvom den ikke er i brug.
Hukommelseslækager i Windows 11/10
Før du begynder, bør du vide, at et hukommelseslæk(Memory) er et softwareproblem, der skal fejlfindes – 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 indlysende, at en hukommelseslækage er dårlig, fordi det er en fejl, en fejl i systemet. Men lad os finde ud af, hvordan det præcist påvirker systemet:
- Da hukommelsen ikke frigøres, selv når den ikke er i brug, resulterer det i hukommelsesudtømning.
- Udmattelse af hukommelsen resulterer i softwarealdring.
- Reduceret tilgængelig hukommelse fører til øget responstid og dårlig ydeevne af systemet.
- En ukontrolleret hukommelseslækage kan i sidste ende føre til nedbrud af en applikation.
For at identificere en hukommelseslækage skal en programmør have adgang til programmets kildekode.
Lokalisering af lækagen
For at løse et problem skal vi først identificere det. De grundlæggende trin til at lokalisere en hukommelseslækage er:
- Bekræftelse(Affirmation) : Bestemmelse af, om der er opstået en lækage.
- Finding af hukommelseslækage i kerneltilstand(Finding Kernel-mode memory leak) : Lokalisering af en lækage forårsaget af en driverkomponent i kerneltilstand.
- Find hukommelseslækage i brugertilstand(Finding User-mode memory leak) : Lokalisering af en lækage forårsaget af en driver eller app i brugertilstand.
Hukommelsestildeling
Der er forskellige tilstande, hvor applikationer allokerer RAM . Hvis der ikke frigøres plads efter brug, vil hukommelseslækagen opstå uanset tildelingsmåden. Nogle almindelige tildelingsmønstre er:
- HealAlloc funktion til heap memory allokering. C/C++ runtime-ækvivalenterne er malloc og nye.
- VirtualAlloc funktion til direkte allokering fra OS.
- Kernel32 API'er(Kernel32 APIs) til at opbevare kernehukommelse til appen. Eksempel(Example) , CreateFile , CreateThread .
- User32 API'er og Gdi32 API'er.
Undgå hukommelseslækager i Windows
Vi ved alle, at forebyggelse er bedre end helbredelse, så her er nogle måder at forhindre en hukommelseslækage på.
Overvågningsvaner
Du skal holde øje med unormalt RAM- forbrug af individuelle programmer og applikationer. Du kan gå til Windows Task Manager ved at trykke på CTRL+SHIFT+ESC og tilføje kolonner som Håndtag(Handles) , Brugerobjekter(User Objects) , GDI-objekter(GDI Objects) osv.
Dette vil hjælpe dig med nemt at overvåge ressourceforbrug.
Læs(Read) : Hvad er hukommelsestyperne i en computer?(What are the Types of Memory in a computer?)
Microsoft -værktøjer til at diagnosticere hukommelseslækager
Forskellige værktøjer diagnosticerer hukommelseslækager for forskellige allokeringstilstande:
- Application Verifier diagnosticerer heap-lækager.
- UMDH (en komponent i Windows Debugging Tools ) diagnosticerer lækager for individuelle processer ved at overvåge heap-hukommelsesallokeringer.
- Trace Capture til en grundig analyse af RAM- forbrug.
- Xperf sporer også heap-allokeringsmønstre.
- CRT Debug Heap sporer ikke kun heap-allokeringer, men muliggør også kodningspraksis for at minimere lækager.
- JavaScript Memory Leak Detector debugger hukommelseslækager i koder.
Brugstips
- Brug kernel HANDLE s og andre smarte pointere til Win32 - ressourcer og heap-allokeringer.
- Få(Get) klasser til automatisk ressourcestyring til kerneallokeringer fra ATL - biblioteket. C++-standarden har auto_ptr til heap-allokeringer.
- Indkapsl COM(Encapsulate COM) -grænsefladepointere i "smart pointers" ved hjælp af _com_ptr_t eller _bstr_t eller _variant_t .
- Overvåg (Monitor).NET - koden for unormalt hukommelsesforbrug.
- Undgå(Avoid) flere udgangsstier for funktioner for at lade allokeringer blive frigjort fra variabler i de fleste blokke ved slutningen af en funktion.
- Brug(Use) kun indfødte undtagelser efter frigivelse af alle tildelinger i blokken _finally . Pak(Wrap) alle heap og håndtere allokeringer ind i smarte pointere for at bruge C++ undtagelser.
- Kald altid PropVariantClear- funktionen, før du geninitialiserer eller kasserer et PROPVARIANT- objekt.
Fejlfinding(Troubleshoot) af hukommelseslækager i Windows
Ligesom de forskellige måder at forhindre hukommelseslækager på, er der forskellige måder at stoppe hukommelseslækager på. Men før du begynder, skal du huske at oprette et systemgendannelsespunkt først .
1] Luk processer og genstart.
Hvis du ser, at en unødvendig proces optager for meget RAM , kan du afslutte processen i Task Manager . Du skal genstarte enheden, så den frigjorte plads er tilgængelig til brug for andre processer. Uden en genstart(Restart) hukommelseslækage vil problemet ikke blive løst. En særlig proces, der har fejl til at bremse pc'en, er Runtime Broker . Prøv om deaktivering alene virker.
2] Hukommelsesdiagnoseværktøjer
Sådan får du adgang til det indbyggede Memory Diagnostic Tool til Windows:
- Gem alt dit vigtige arbejde.
- Tryk på Win + R for at åbne vinduet Kør .(Run)
- Indtast kommandoen mdsched.exe i vinduet Kør(Run) .
- Genstart pc'en.
- Efter en genstart skal du udføre en grundlæggende scanning eller gå efter ' Avanceret(Advanced) ' muligheder som ' Test mix ' eller ' Pass count '.
- Tryk på F10 for at starte testen.
Disse er stadig midlertidige rettelser.
3] Se efter driveropdateringer
Forældede drivere forårsager hukommelseslækager. Hold alle drivere opdateret :
- Tryk på Win + R og åbn vinduet Kør . (Run)Skriv devmgmt.msc og tryk på Enter . Det fører dig til Enhedshåndtering(Device Manager) .
- Se(Check) efter forældede drivere og opdater dem alle.
- For opdateringer, du måske er gået glip af, tjek i Windows Update .
Dette var enkelt.
4] Optimer ydeevnen
Justering af Windows til ydeevne vil styre alt inklusive processorplanlægning og hukommelsesbrug for at stoppe hukommelseslækager. Følg disse trin:
- Højreklik på ' Denne pc(This PC) ' og vælg ' Avancerede(Advanced) ' indstillinger i venstre rude.
- Under fanen ' Avanceret(Advanced) ' skal du gå til ' Ydelse(Performance) ', efterfulgt af ' Indstillinger(Settings) '.
- Marker ' Juster for bedste ydeevne(Adjust for best performance) ', og klik på OK .
- Genstart(Restart) og kontroller, om problemet er løst.
Hvis denne enkle løsning ikke virkede, så prøv den næste løsning.
5] Deaktiver programmer,(Programs) der kører ved opstart(Startup)
Deaktivering af de besværlige programmer er den eneste måde at slippe af med problemet med hukommelseslækage. Gå til Task Manager og deaktiver fejlfindingsprogrammet. Hvis du ikke ved, hvilke programmer der skaber problemerne, skal du gøre dette:
- Gå til ' Task Manager '.
- Gå til ' Opstart(Startup) '.
- Deaktiver de opstartsprogrammer,(Disable the startup programs) du ikke behøver at køre som standard.
6] Defragmenter harddisk
Selvom Windows 10 gør dette for dig automatisk, skal du muligvis defragmentere harddiskene af og til for at optimere ydeevnen:
- Gå til ' Denne pc(This PC) ' eller ' Min computer(My Computer) '.
- Højreklik(Right-Click) på systemharddisken (normalt C:-drev).
- Gå til ' Værktøjer(Tools) ' under ' Egenskaber(Properties) ' og vælg ' Optimer(Optimize) '.
- Vælg det drev, der skal defragmenteres, og vælg ' Analyser(Analyze) '.
Genstart din computer efter den nye fragmentering.
7] ClearPage-fil ved nedlukning
Det bliver komplekst nu – men bare rolig. Sådan rydder du sidefilen ved hver nedlukning(clear the Page File at every shutdown) :
- Skriv regedit på Søg(Search) for at starte registreringseditoren(Registry Editor) .
- Indtast denne sti:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
- Skift værdien af ClearPageFileAtShutDown til '1'.( ClearPageFileAtShutDown to ‘1’.)
- Gem ændringerne, og genstart(Restart) enheden.
Dette burde gøre det. Husk, at din nedlukningsproces vil tage lidt længere tid.
9] Deaktiver Superfetch
Denne Windows-tjeneste(Windows Service) optimerer ydeevnen ved at minimere opstartstiden. Det lader Windows administrere RAM- brug. Livet(Life) efter at have deaktiveret Superfetch er ikke praktisk, men gør det, hvis du skal. Prøv i det mindste dette alene for at isolere problemet:
- Søg services.msc og gå til Services Manager.
- Se efter ' Superfetch ' og højreklik på den for at gå til ' Egenskaber(Properties) '.
- Vælg ' Stop '.
- ' Deaktiver(Disable) ' også tjenesten fra rullemenuen.
- Genstart pc'en og kontroller, om ydeevnen er forbedret.
Aktiver Superfetch, hvis denne ikke virkede.
10] Tjek for malware
Brug en tredjeparts antivirussoftware eller Windows 10's interne Windows Defender til at scanne og fjerne malware. Sørg(Make) for, at antivirusprogrammet er opdateret til at understøtte dit OS, så det ikke ender med at blive årsagen til hukommelseslækagen.
Enhver løsning, du nogensinde har brug for for at finde eller forhindre hukommelseslækager, er lige her. Du kan læse mere om hukommelseslækager på MSDN og Microsoft .
Related posts
Sådan åbner og læser du Small Memory Dump (dmp)-filer i Windows 11/10
Sådan kører du Windows Memory Diagnostics Tool i Windows 11/10
Sådan øges sidefilstørrelse eller virtuel hukommelse i Windows 11/10
Sådan oprettes en Crash Dump-fil manuelt i Windows 11/10
Explorer.exe Høj hukommelse eller CPU-brug i Windows 11/10
Microsoft Edge Browser Tips og Tricks til Windows 11/10
Sådan kortlægger du et netværksdrev eller tilføjer et FTP-drev i Windows 11/10
Hvad er PLS fil? Hvordan opretter man en PLS-fil i Windows 11/10?
Hvad er Windows.edb-filen i Windows 11/10
Sådan tilføjer du et pålideligt websted i Windows 11/10
Sådan ændres standardwebkamera i Windows 11/10-computer
Sådan aktiveres eller deaktiveres Arkiv Apps-funktionen i Windows 11/10
CPU'en kører ikke med fuld hastighed eller kapacitet i Windows 11/10
Indstil Notepad++ som standardeditor for .xml-filer i Windows 11/10
Sådan repareres 100 % disk, høj CPU, høj hukommelsesbrug i Windows 11/10
Sådan kontrolleres nedluknings- og opstartsloggen i Windows 11/10
Aktiver eller deaktiver kerneisolering og hukommelsesintegritet i Windows 11/10
Ret WerMgr.exe eller WerFault.exe applikationsfejl i Windows 11/10
Aktiver netværksforbindelser, mens du er i moderne standby på Windows 11/10
Bedste gratis skemasoftware til Windows 11/10