Nájdite a opravte úniky pamäte v systéme Windows 11/10

Únik pamäte(Memory Leak) je nesprávne umiestnenie zdrojov v počítačovom programe v dôsledku chybnej alokácie pamäte. Stáva sa to, keď miesto RAM , ktoré sa nepoužíva, zostane neuvoľnené. Únik pamäte sa nesmie zamieňať s únikom priestoru, ktorý sa týka programu, ktorý využíva viac pamäte RAM(RAM) , ako je potrebné. Únik pamäte v Windows 11/10/8/7 údajne nastal vtedy, keď pamäť jednoducho nie je prístupná napriek tomu, že sa nepoužíva.

Úniky pamäte v systéme Windows 11/10

Skôr ako začnete, mali by ste vedieť, že únik pamäte(Memory) je softvérový problém, ktorý treba odladiť – napríklad v jazyku Java(Java) , JavaScript , C/C++, Windows atď. Fyzická výmena pamäte RAM(RAM) alebo pevného disku sa nevyžaduje.

Únik pamäte v systéme Windows 10

prečo je to zlé

Je zrejmé, že únik pamäte je zlý, pretože je to chyba, chyba v systéme. Poďme však zistiť, ako presne to ovplyvňuje systém:

  1. Keďže sa pamäť neuvoľňuje, aj keď sa nepoužíva, vedie to k vyčerpaniu pamäte.
  2. Vyčerpanie pamäte má za následok starnutie softvéru.
  3. Znížená dostupná pamäť vedie k zvýšeniu času odozvy a slabému výkonu systému.
  4. Nekontrolovaný únik pamäte môže nakoniec viesť k zlyhaniu aplikácie.

Na identifikáciu úniku pamäte musí mať programátor prístup k zdrojovému kódu programu.

Lokalizácia úniku

Aby sme mohli problém vyriešiť, musíme ho najskôr identifikovať. Základné kroky na nájdenie úniku pamäte sú:

  1. Potvrdenie(Affirmation) : Určenie, či došlo k úniku.
  2. Hľadanie úniku pamäte v režime jadra(Finding Kernel-mode memory leak) : Vyhľadanie úniku spôsobeného komponentom ovládača režimu jadra.
  3. Hľadanie úniku pamäte v používateľskom režime(Finding User-mode memory leak) : Vyhľadanie úniku spôsobeného ovládačom alebo aplikáciou v používateľskom režime.

Pridelenie pamäte

Existujú rôzne režimy, v ktorých aplikácie prideľujú pamäť RAM(RAM) . Ak sa miesto po použití neuvoľní, dôjde k úniku pamäte bez ohľadu na režim pridelenia. Niektoré bežné vzory prideľovania sú:

  1. Funkcia HealAlloc(HealAlloc) na pridelenie pamäte haldy. Ekvivalenty C/C++ runtime sú malloc a new.
  2. Funkcia VirtualAlloc(VirtualAlloc) pre priamu alokáciu z OS.
  3. Kernel32 API(Kernel32 APIs) na uchovávanie pamäte jadra pre aplikáciu. Príklad(Example) , CreateFile , CreateThread .
  4. User32 API a Gdi32 API.

Zabráňte úniku pamäte v systéme Windows

Všetci vieme, že prevencia je lepšia ako liečba, takže tu je niekoľko spôsobov, ako zabrániť úniku pamäte.

Monitorovanie návykov

Úniky pamäte v systéme Windows 10

Musíte dávať pozor na abnormálne využitie pamäte RAM(RAM) jednotlivými programami a aplikáciami. Do Správcu úloh systému Windows(Windows Task Manager) môžete prejsť stlačením CTRL+SHIFT+ESC a pridať stĺpce ako Handles , User Objects , GDI Objects atď.

To vám pomôže ľahko monitorovať využitie zdrojov.

Prečítajte si(Read) : Aké sú typy pamätí v počítači?(What are the Types of Memory in a computer?)

Nástroje spoločnosti Microsoft(Microsoft) na diagnostiku úniku pamäte

Rôzne nástroje diagnostikujú úniky pamäte pre rôzne režimy prideľovania:

  1. Application Verifier diagnostikuje úniky haldy.
  2. UMDH (súčasť nástrojov na ladenie systému Windows(Windows Debugging Tools) ) diagnostikuje netesnosti pre jednotlivé procesy monitorovaním pridelenia pamäte haldy.
  3. Trace Capture pre dôkladnú analýzu využitia RAM .
  4. Xperf tiež sleduje vzory prideľovania haldy.
  5. CRT Debug Heap nielen sleduje alokácie haldy, ale umožňuje aj kódovacie postupy na minimalizáciu únikov.
  6. JavaScript Memory Leak Detector ladí úniky pamäte v kódoch.

Tipy na použitie

  1. Použite kernel HANDLE s a ďalšie inteligentné ukazovatele pre zdroje Win32 a alokácie haldy.(Win32)
  2. Získajte(Get) triedy pre automatickú správu prostriedkov pre alokácie jadra z knižnice ATL . Štandard C++ má auto_ptr pre alokáciu haldy.
  3. Zapuzdrejte(Encapsulate COM) ukazovatele rozhrania COM do „inteligentných ukazovateľov“ pomocou _com_ptr_t alebo _bstr_t alebo _variant_t .
  4. Monitorujte(Monitor) kód .NET na abnormálne využitie pamäte.
  5. Vyhnite(Avoid) sa viacerým výstupným cestám pre funkcie, aby sa alokácie oslobodili od premenných vo väčšine blokov na konci funkcie.
  6. Natívne výnimky používajte(Use) až po uvoľnení všetkých alokácií v bloku _finally . Zabaľte(Wrap) všetky haldy a spravujte alokácie do inteligentných ukazovateľov, aby ste mohli použiť výnimky C++.
  7. Pred opätovnou inicializáciou alebo vyradením objektu PROPVARIANT vždy zavolajte funkciu PropVariantClear .

Riešenie problémov(Troubleshoot) s únikom pamäte v systéme Windows(Windows)

Rovnako ako rôzne spôsoby, ako zabrániť úniku pamäte, existujú rôzne spôsoby, ako zastaviť úniky pamäte. Ale skôr ako začnete, nezabudnite najprv vytvoriť bod obnovenia systému .

1] Zatvorte procesy a reštartujte.

Ak vidíte, že nepotrebný proces zaberá príliš veľa pamäte RAM(RAM) , môžete proces ukončiť v Správcovi úloh(Task Manager) . Budete musieť reštartovať zariadenie, aby bolo uvoľnené miesto k dispozícii na použitie inými procesmi. Bez problému s únikom pamäte reštartu(Restart) sa problém nevyrieši. Jeden konkrétny proces, ktorý má chyby na spomalenie PC, je Runtime Broker . Skúste, či samotné vypnutie funguje.

2] Nástroje na diagnostiku pamäte

Diagnostika pamäte systému Windows

Prístup k vstavanému nástroju Memory Diagnostic Tool pre Windows:

  1. Uložte si všetku svoju dôležitú prácu.
  2. Stlačením Win + R otvorte okno Spustiť .(Run)
  3. Do okna Spustiť(Run) zadajte príkaz mdsched.exe .
  4. Reštartujte počítač.
  5. Po reštarte vykonajte základné skenovanie alebo prejdite na možnosti „ Pokročilé(Advanced) “, ako napríklad „ Test mix “ alebo „ Počet(Pass count) absolvovaní “.
  6. Stlačením klávesu F10 spustíte test.

Toto sú stále dočasné opravy.

3] Skontrolujte aktualizácie ovládača

Aktualizujte softvér ovládača

Zastarané ovládače spôsobujú úniky pamäte. Udržujte všetky ovládače aktualizované :

  1. Stlačte Win + R a otvorte okno Spustiť . (Run)Napíšte devmgmt.msc a stlačte Enter . Dostanete sa do Správcu zariadení(Device Manager) .
  2. Skontrolujte(Check) zastarané ovládače a aktualizujte ich všetky.
  3. Aktualizácie, ktoré ste možno zmeškali, nájdete v službe Windows Update(Windows Update) .

Toto bolo jednoduché.

4] Optimalizujte výkon

Upravte pre najlepší výkon

Úprava výkonu systému Windows bude spravovať všetko vrátane plánovania procesora a využitia pamäte na zastavenie úniku pamäte. Nasleduj tieto kroky:

  1. Kliknite pravým tlačidlom myši na „ Tento počítač(This PC) “ a v ľavom paneli vyberte „ Rozšírené “ nastavenia.(Advanced)
  2. Na karte „ Rozšírené(Advanced) “ prejdite na „ Výkon(Performance) “ a potom na „ Nastavenia(Settings) “.
  3. Začiarknite políčko „ Upraviť pre najlepší výkon(Adjust for best performance) “ a kliknite na tlačidlo OK .
  4. Reštartujte(Restart) a skontrolujte, či sa problém vyriešil.

Ak toto jednoduché riešenie nefungovalo, skúste ďalšie riešenie.

5] Zakázať programy(Programs) spustené pri spustení(Startup)

Spúšťacie programy

Zakázanie problematických programov je jediný spôsob, ako sa zbaviť problému s únikom pamäte. Prejdite do Správcu úloh(Task Manager) a vypnite program na odstraňovanie problémov. Ak neviete, ktoré programy spôsobujú problém, postupujte takto:

  1. Prejdite do „ Správcu úloh(Task Manager) “.
  2. Prejdite na „ Spustenie(Startup) “.
  3. Predvolene zakážte spúšťacie programy(Disable the startup programs) , ktoré nemusíte spúšťať.

6] Defragmentujte pevný disk

Defragmentácia disku

Hoci to Windows 10 robí za vás automaticky, možno budete musieť občas defragmentovať pevné disky , aby ste optimalizovali výkon:

  1. Prejdite na „ Tento počítač(This PC) “ alebo „ Tento počítač(My Computer) “.
  2. Pravým tlačidlom myši kliknite(Right-Click) na systémový pevný disk (zvyčajne disk C:).
  3. Prejdite na „ Nástroje(Tools) “ v časti „ Vlastnosti(Properties) “ a vyberte „ Optimalizovať(Optimize) “.
  4. Vyberte jednotku, ktorú chcete defragmentovať, a vyberte možnosť „ Analyzovať(Analyze) “.

Po novej fragmentácii reštartujte počítač.

7] ClearPage File pri vypnutí

Teraz to začína byť zložité – ale nebojte sa. Tu je postup, ako vymazať súbor stránky pri každom vypnutí(clear the Page File at every shutdown) :

  • Zadajte príkaz regedit(regedit) do vyhľadávania(Search) a spustite Editor databázy Registry(Registry Editor) .
  • Zadajte túto cestu:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
  • Zmeňte hodnotu ClearPageFileAtShutDown na „1“.( ClearPageFileAtShutDown to ‘1’.)
  • Uložte zmeny a reštartujte(Restart) zariadenie.

Toto by malo stačiť. Pamätajte, že proces vypnutia bude trvať trochu dlhšie.

9] Zakázať Superfetch

Táto služba Windows(Windows Service) optimalizuje výkon minimalizovaním času zavádzania. Umožňuje systému Windows(Windows) spravovať využitie pamäte RAM . (RAM)Život(Life) po vypnutí Superfetch nie je pohodlný, ale urobte to, ak musíte. Skúste aspoň toto, aby ste problém izolovali:

  1. Vyhľadajte services.msc a prejdite do Správcu služieb.
  2. Vyhľadajte „ Superfetch “ a kliknite naň pravým tlačidlom myši, aby ste prešli na „ Vlastnosti(Properties) “.
  3. Zvoľte ' Stop '.
  4. Tiež " Zakázať(Disable) " službu z rozbaľovacej ponuky.
  5. Reštartujte počítač a skontrolujte, či sa výkon zlepšil.

Povoľte Superfetch, ak tento nefungoval.

10] Skontrolujte prítomnosť škodlivého softvéru

Na skenovanie a odstránenie škodlivého softvéru použite antivírusový softvér tretej strany alebo interný program Windows Defender systému Windows 10. (Windows Defender)Uistite(Make) sa, že antivírus je aktualizovaný, aby podporoval váš operačný systém, aby sa nakoniec nestal dôvodom úniku pamäte.

Každé riešenie, ktoré by ste kedy potrebovali na nájdenie alebo zabránenie úniku pamäte, je práve tu. Viac o únikoch pamäte si môžete prečítať na stránkach MSDN(MSDN) a Microsoft .



About the author

Mám vzdelanie v oblasti počítačového inžinierstva a informačných technológií, čo mi dalo jedinečný pohľad na platformy Windows 10 a 11. Najmä mám skúsenosti s Windows 10 " Desktop Experience " a prehliadačom Microsoft Edge. Moje skúsenosti s týmito dvoma platformami mi umožňujú hlboko pochopiť, ako fungujú, a moje odborné znalosti v týchto oblastiach mi umožňujú poskytovať spoľahlivé rady, ako ich zlepšiť.



Related posts