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.
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:
- Keďže sa pamäť neuvoľňuje, aj keď sa nepoužíva, vedie to k vyčerpaniu pamäte.
- Vyčerpanie pamäte má za následok starnutie softvéru.
- Znížená dostupná pamäť vedie k zvýšeniu času odozvy a slabému výkonu systému.
- 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ú:
- Potvrdenie(Affirmation) : Určenie, či došlo k úniku.
- 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.
- 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ú:
- Funkcia HealAlloc(HealAlloc) na pridelenie pamäte haldy. Ekvivalenty C/C++ runtime sú malloc a new.
- Funkcia VirtualAlloc(VirtualAlloc) pre priamu alokáciu z OS.
- Kernel32 API(Kernel32 APIs) na uchovávanie pamäte jadra pre aplikáciu. Príklad(Example) , CreateFile , CreateThread .
- 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
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:
- Application Verifier diagnostikuje úniky haldy.
- UMDH (súčasť nástrojov na ladenie systému Windows(Windows Debugging Tools) ) diagnostikuje netesnosti pre jednotlivé procesy monitorovaním pridelenia pamäte haldy.
- Trace Capture pre dôkladnú analýzu využitia RAM .
- Xperf tiež sleduje vzory prideľovania haldy.
- CRT Debug Heap nielen sleduje alokácie haldy, ale umožňuje aj kódovacie postupy na minimalizáciu únikov.
- JavaScript Memory Leak Detector ladí úniky pamäte v kódoch.
Tipy na použitie
- Použite kernel HANDLE s a ďalšie inteligentné ukazovatele pre zdroje Win32 a alokácie haldy.(Win32)
- 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.
- Zapuzdrejte(Encapsulate COM) ukazovatele rozhrania COM do „inteligentných ukazovateľov“ pomocou _com_ptr_t alebo _bstr_t alebo _variant_t .
- Monitorujte(Monitor) kód .NET na abnormálne využitie pamäte.
- 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.
- 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++.
- 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
Prístup k vstavanému nástroju Memory Diagnostic Tool pre Windows:
- Uložte si všetku svoju dôležitú prácu.
- Stlačením Win + R otvorte okno Spustiť .(Run)
- Do okna Spustiť(Run) zadajte príkaz mdsched.exe .
- Reštartujte počítač.
- 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í “.
- Stlačením klávesu F10 spustíte test.
Toto sú stále dočasné opravy.
3] Skontrolujte aktualizácie ovládača
Zastarané ovládače spôsobujú úniky pamäte. Udržujte všetky ovládače aktualizované :
- 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) .
- Skontrolujte(Check) zastarané ovládače a aktualizujte ich všetky.
- Aktualizácie, ktoré ste možno zmeškali, nájdete v službe Windows Update(Windows Update) .
Toto bolo jednoduché.
4] Optimalizujte 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:
- Kliknite pravým tlačidlom myši na „ Tento počítač(This PC) “ a v ľavom paneli vyberte „ Rozšírené “ nastavenia.(Advanced)
- Na karte „ Rozšírené(Advanced) “ prejdite na „ Výkon(Performance) “ a potom na „ Nastavenia(Settings) “.
- Začiarknite políčko „ Upraviť pre najlepší výkon(Adjust for best performance) “ a kliknite na tlačidlo OK .
- 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)
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:
- Prejdite do „ Správcu úloh(Task Manager) “.
- Prejdite na „ Spustenie(Startup) “.
- Predvolene zakážte spúšťacie programy(Disable the startup programs) , ktoré nemusíte spúšťať.
6] Defragmentujte pevný disk
Hoci to Windows 10 robí za vás automaticky, možno budete musieť občas defragmentovať pevné disky , aby ste optimalizovali výkon:
- Prejdite na „ Tento počítač(This PC) “ alebo „ Tento počítač(My Computer) “.
- Pravým tlačidlom myši kliknite(Right-Click) na systémový pevný disk (zvyčajne disk C:).
- Prejdite na „ Nástroje(Tools) “ v časti „ Vlastnosti(Properties) “ a vyberte „ Optimalizovať(Optimize) “.
- 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:
- Vyhľadajte services.msc a prejdite do Správcu služieb.
- Vyhľadajte „ Superfetch “ a kliknite naň pravým tlačidlom myši, aby ste prešli na „ Vlastnosti(Properties) “.
- Zvoľte ' Stop '.
- Tiež " Zakázať(Disable) " službu z rozbaľovacej ponuky.
- 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 .
Related posts
Ako otvárať a čítať súbory Small Memory Dump (dmp) v systéme Windows 11/10
Ako spustiť nástroj na diagnostiku pamäte systému Windows v systéme Windows 11/10
Ako zväčšiť veľkosť stránkového súboru alebo virtuálnu pamäť v systéme Windows 11/10
Ako manuálne vytvoriť súbor Crash Dump v systéme Windows 11/10
Explorer.exe Vysoké využitie pamäte alebo procesora v systéme Windows 11/10
Ako zakázať možnosť Nájsť moje zariadenie v nastaveniach systému Windows 11/10
CPU nefunguje pri plnej rýchlosti alebo kapacite v systéme Windows 11/10
Ako povoliť alebo zakázať funkciu archivácie aplikácií v systéme Windows 11/10
Čo je súbor Windows.edb v systéme Windows 11/10
Ako zvýšiť vyhradenú video RAM v systéme Windows 11/10
Najlepší bezplatný softvér Rozvrh pre Windows 11/10
Povoľte sieťové pripojenia v modernom pohotovostnom režime v systéme Windows 11/10
Ako pridať dôveryhodnú stránku v systéme Windows 11/10
Opravte vysoké využitie pamäte Microsoft Edge v systéme Windows 11/10
Upozornenia na paneli úloh sa nezobrazujú v systéme Windows 11/10
Ako zobraziť tablu podrobností v Prieskumníkovi v systéme Windows 11/10
Ako vymeniť jednotky pevného disku v systéme Windows 11/10 pomocou funkcie Hot Swap
Ako opraviť úniky pamäte systému Windows 10
Ako vyriešiť problém s kolíziou podpisu disku v systéme Windows 11/10
Aplikácia Mail and Calendar zamŕza, padá alebo nefunguje v systéme Windows 11/10