Reparation af huller og revner / Gør det selv / Byglet.dk
Indholdsfortegnelse:
A Hukommelseslækage er en fejlplacering af ressource i et computerprogram på grund af defekt hukommelseallokering. Det sker, når en RAM-placering ikke er i brug, forbliver uudleveret. En hukommelseslækage må ikke forveksles med et rumlækage, der henviser 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 ikke er tilgængelig, selvom den ikke er i brug.
Hukommelseslækager i Windows 10
Før du begynder, skal du vide, at Hukommelseslækage er et softwareproblem til fejlfinding - 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 åbenbart en hukommelse lækage er dårligt, fordi det er en fejl, en fejl i systemet. Men lad os finde ud af, hvordan netop det påvirker systemet:
- Da hukommelsen ikke frigøres, selvom den ikke er i brug, resulterer det i hukommelseudslip.
- Udmattelse af hukommelsen resulterer i software aldring.
- Reduceret ledig hukommelse fører til øget responstid og dårlig præstation af systemet.
- Ukontrolleret hukommelselækage kan i sidste ende føre til et programkrasj.
For at identificere en hukommelseslækage skal en programmør have adgang til kildekoden for programmet.
Placering af lækagen
For at løse et problem skal vi først identificere det. Grundlæggende trin til at lokalisere hukommelseslækage er:
- Affirmation : Bestemmelse af, om der er opstået en lækage.
- Finde kernefunktionshukommelselækage : Find en lækage forårsaget af en kerne-mode-driverkomponent.
- Find brugermodushukommelselækage : Find en lækage forårsaget af brugerdriver eller app.
Hukommelsesallokering
Der er forskellige tilstande, hvor programmer tildeler RAM. Hvis rummet ikke frigøres efter brug, vil hukommelseslækage forekomme uanset tildelingsform. Nogle fælles tildelingsmønstre er:
- HealAlloc-funktion til tildeling af heaphukommelse. C / C ++ runtimeækvivalenterne er malloc og nye.
- VirtualAlloc-funktion til direkte tildeling fra OS.
- Kernel32 API`er til at holde kernel memory til appen. Eksempel, CreateFile, CreateThread.
- Bruger32 API`er og Gdi32 API`er.
Forebyggelse af hukommelseslekkage
Vi ved alle, at forebyggelse er bedre end helbredelse, så her er nogle måder at forhindre hukommelselækage på.
Overvågningsvaner
Du skal holde øje med unormal RAM forbrug af individuelle programmer og applikationer. Du kan gå til Windows Task Manager ved at trykke på CTRL + SHIFT + ESC og tilføje kolonnerne som Håndtag, Brugerobjekter, GDI-objekter mv.
Dette vil hjælpe dig med at overvåge ressourceforbruget.
Microsoft Tools til at diagnosticere hukommelselækager
Forskellige værktøjer diagnosticere hukommelseslækage for forskellige tildelingsformer:
- Program Verifier diagnostiserer hældningslækager.
- UMDH (en komponent af Windows Debugging Tools) diagnosticerer lækager for individuelle processer ved at overvåge hukommelsesallokeringer
- Trace Capture for en grundig analyse af RAM-brug.
- Xperf også sporer heapfordelingsmønstre.
- CRT Debug Heap sporer ikke kun højdeallokeringer, men også mulighed for kodningspraksis for at minimere lækager.
- JavaScript Memory Læk Detektor debugger hukommelse lækker i koder.
Brugtips
- Brug kernel HANDLE s og andre smarte pointer til Win32 ressourcer og heapallokeringer.
- Få klasser til automatisk ressourcehåndtering til kernelallokeringer fra ATL biblioteket. C ++ -standarden har auto_ptr til heapallokeringer.
- Indkapsler COM-grænsefladepegere inden for "smart pointers" ved hjælp af _com_ptr_t eller _bstr_t eller _variant_t .
- Overvåg.NET-koden for unormal hukommelsesforbrug.
- Undgå flere udgangsveje for funktioner, der gør det muligt at lade bevillinger frigøres fra variabler i de fleste blokke ved slutningen af en funktion.
- Brug kun indfødte undtagelser efter frigivelse af alle tildelinger i den _finale blok. Wrap all heap og håndtere tildelinger i smart pointers for at bruge C ++ undtagelser.
- Du skal altid ringe til PropVariantClear -funktionen, inden du genaktiverer eller kasserer en PROPVARIANT-genstand.
Fejlfinding af hukommelseslækager i Windows
Ligesom de forskellige måder at forhindre hukommelsesleje på, er der forskellige måder at stoppe hukommelseslekkasjer på.
1] Luk processer og genstart.
Hvis du ser en unødvendig proces, er der for meget RAM, kan du afslutte processen i Task Manager. Du skal genstarte enheden, så det frigjorte rum er tilgængeligt for andre processer. Uden en genstart hukommelse lækage problem vil ikke blive løst. En bestemt proces, der har problemer med at bremse pc`en, er Runtime Broker.
2) Hukommelsesdiagnostiske værktøjer
For at få adgang til det indbyggede hukommelsesdiagnostikværktøj til Windows:
- Gem alt dit vigtige arbejde.
- Tryk på Vind + R for at åbne vinduet Kør .
- Skriv kommandoen mdsched.exe i vinduet Kør .
- Genstart pc`en.
- Efter en genstart, udfør en grundscanning eller gå til ` Avanceret ` indstillinger som ` Test mix ` eller ` Pass count `.
- Tryk på F10 for at starte testen.
Disse er stadig midlertidige rettelser.
3] Check for Driver opdateringer
Forældede drivere forårsager hukommelselækager. Opbevar alle drivere opdateret:
- Tryk på Vind + R , og åbn vinduet Kør . Skriv devmgmt.msc , og tryk på Enter. Det går dig til Enhedshåndtering .
- Kontroller forældede drivere og opdatere dem alle.
- For opdateringer, du måske har savnet, skal du tjekke Windows Update.
Dette var enkelt.
4] Optimer ydeevne
Justering af Windows til ydeevne vil klare alt inklusive processorplanlægning og hukommelsesforbrug for at stoppe hukommelseslekkasjer. Følg disse trin:
- Højreklik på ` Denne pc ` og vælg ` Avanceret ` indstillinger i venstre rude.
- Under ` Avanceret ` Ydelse ` efterfulgt af ` Indstillinger `.
- Kontroller Juster for bedste ydeevne `og klik på OK .
- Genstart og tjek om problemet er løst.
Hvis denne enkle løsning ikke fungerede, prøv 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ækageproblemet. Gå til Opgavehåndtering og deaktiver problemløsningsprogrammet. Hvis du ikke ved, hvilke programmer der skaber problemerne, skal du gøre følgende:
- Gå til ` Opgavebehandling `.
- Gå til ` Opstart `.
- Deaktiver de opstartsprogrammer, du ikke behøver at køre som standard.
6] Defrag harddisk
Selv om Windows 10 gør dette til dig automatisk, skal du muligvis defragtere harddiskene til tider for at optimere ydeevnen:
- Gå til ` Denne pc ` eller ` Denne computer `.
- Højreklik på systemets harddisk (normalt C: drev).
- Gå til ` > Værktøjer `under` Egenskaber `og vælg` Optimer `.
- Vælg drevet for at defragtere og vælg` Analysér `.
Genstart computeren efter den nye fragmentering.
7] ClearPage-fil ved nedlukning
Det bliver kompliceret nu - men rolig. Sådan fjerner du Page-filen ved hver afbrydelse:
- Type regedit på Søg for at starte registreringseditoren.
- Indtast denne vej: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
- Skift værdien af ClearPageFileAtShutDown til `1`.
- Gem ændringerne og genstart enheden.
Dette burde gøre det.
9] Deaktiver Superfetch
Denne Windows-service optimerer ydeevnen ved at minimere opstartstiden. Det lader Windows håndtere RAM-brug. Livet efter deaktivering af Superfetch er ikke praktisk, men gør det, hvis du skal. Prøv i det mindste 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 `.
- Vælg` Stop `.
- Også` Deaktiver `tjenesten fra rullemenuen.
- Genstart pc`en og kontroller, om ydeevnen er forbedret.
Aktivér Superfetch, hvis denne ikke fungerede.
10] Check for malware
Brug et tredjeparts antivirusprogram eller Windows 10s interne Windows Defender til at scanne og fjerne malware. Sørg for, at antivirusprogrammet er opdateret for at understøtte dit operativsystem, så det ikke ender med at blive årsagen til hukommelselækage.
Alle løsninger, som du måske har brug for til at finde eller forhindre hukommelselækager, er lige her. Du kan læse mere om hukommelseslækager på MSDN og Microsoft.
Fejlfinding i Windows Firewall: Reparér og reparer Windows Firewall-problemer automatisk
Fejlfinding af Windows Firewall-download. Er din Windows Firewall giver dig problemer? Får du sikkerhedsadvarsel? Windows Firewall er slukket, eller måske har du ikke adgang til delte filer eller printere.
Reparer og reparer Windows-opdateringer med Fix WU-værktøj
Windows-opdateringer undlader at installere? TRy Fix WU-hjælpeprogrammet. Det vil genregistrere alle nødvendige dll-filer til Windows-opdateringer med et klik.
Find familie eller venner på iphone / ios med find mine venner
En oversigt over Find mine venner og nogle af dets overraskende nyttige funktioner, der hjælper dig med let at finde familie eller venner.