Vyhľadajte a opravte úniky pamäte v systéme Windows 10

Memory Leak je Nevhodné zdroj v počítačovom programe z dôvodu chybného pridelenia pamäte. Stáva sa to, keď miesto RAM, ktoré sa nepoužíva, zostáva nevydané. Únik pamäte nemožno zamieňať s únikom priestoru, ktorý označuje program využívajúci viac pamäte RAM, ako je potrebné. Únik pamäte v systéme Windows 10/8/7 sa údajne uskutočnil, keď pamäť nie je prístupná napriek tomu, že sa nepoužíva.

Úniky pamäte v systéme Windows 10

Skôr ako začnete, mali by ste vedieť, že únik pamäte je softvérový problém na ladenie - napríklad v prostredí Java, JavaScript, C / C ++, Windows atď. Fyzická výmena pamäte 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 ide o chybu, chybu v systéme. Poďme však zistiť, ako presne to ovplyvňuje systém:

  1. Pretože sa pamäť neuvoľňuje, aj keď sa nepoužíva, vedie k jej vyčerpaniu.
  2. Výsledkom vyčerpania pamäte je starnutie softvéru.
  3. Znížená dostupná pamäť vedie k predĺženiu doby odozvy a zlé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.

Vyhľadanie úniku

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

  1. Potvrdenie : Určenie, či došlo k úniku.
  2. Nájdenie úniku pamäte v režime jadra : Vyhľadanie úniku spôsobeného komponentom ovládača v režime jadra.
  3. Nájdenie úniku pamäte v užívateľskom režime : Vyhľadanie úniku spôsobeného ovládačom alebo aplikáciou v užívateľskom režime.

Pridelenie pamäte

Existujú rôzne režimy, v ktorých aplikácie prideľujú pamäť RAM. Ak sa po použití priestor neuvoľní, dôjde k úniku pamäte bez ohľadu na spôsob alokácie. Niektoré spoločné vzory prideľovania sú:

  1. Funkcia HealAlloc na pridelenie haldy pamäte. Runtime ekvivalenty C / C ++ sú malloc a nové.
  2. Funkcia VirtualAlloc pre priame pridelenie z OS.
  3. Rozhrania API Kernel32 na uchovanie pamäte jadra pre aplikáciu. Napríklad CreateFile, CreateThread.
  4. User32 API a Gdi32 API.

Prevencia úniku pamäte

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.

Monitorovacie návyky

Úniky pamäte v systéme Windows 10

Musíte dávať pozor na abnormálne využitie pamäte RAM jednotlivými programami a aplikáciami. Do Správcu úloh systému Windows môžete prejsť stlačením klávesov CTRL + SHIFT + ESC a pridať stĺpce ako Rukoväte, Používateľské objekty, Objekty GDI atď.

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

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

Rôzne nástroje diagnostikujú úniky pamäte pre rôzne režimy alokácie:

  1. Overovač aplikácií diagnostikuje úniky hromady.
  2. UMDH (súčasť nástrojov na ladenie systému Windows) diagnostikuje úniky pre jednotlivé procesy monitorovaním pridelenia haldy pamäte.
  3. Trace Capture pre dôkladnú analýzu využitia RAM.
  4. Aj Xperf sleduje vzory prideľovania hromád.
  5. CRT Debug Heap nielen sleduje pridelenie haldy, ale umožňuje aj postupy kódovania na minimalizáciu únikov.
  6. Detektor úniku pamäte JavaScript ladí úniky pamäte v kódoch.

Tipy na použitie

  1. Použite HANDLE s jadrom a ďalšie podobné inteligentné ukazovatele pre prostriedky Win32 a alokácie haldy.
  2. Získajte triedy na automatickú správu prostriedkov pre alokácie jadra z knižnice ATL. Štandard C ++ má auto_ptr pre alokácie haldy.
  3. Zapuzdriť ukazovatele rozhrania COM do „inteligentných ukazovateľov“ pomocou _com_ptr_t alebo _bstr_t alebo _variant_t .
  4. Monitorujte kód .NET, či nenormálne nevyužíva pamäť.
  5. Vyhnite sa viacerým výstupným cestám pre funkcie, aby ste do konca funkcie mohli alokácie uvoľniť z premenných vo väčšine blokov.
  6. Natívne výnimky používajte až po uvoľnení všetkých pridelení v bloku _finally. Zbaliť všetky haldy a spracovať pridelenia do inteligentných ukazovateľov, aby ste mohli používať výnimky v C ++.
  7. Pred opätovnou inicializáciou alebo vyhodením PROPVARIANTNÉHO objektu vždy zavolajte funkciu PropVariantClear.

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

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

1] Ukončite procesy a reštartujte.

Ak vidíte, že zbytočný proces zaberá príliš veľa pamäte RAM, môžete ho ukončiť v Správcovi úloh. Budete musieť reštartovať zariadenie, aby bolo uvoľnené miesto k dispozícii na použitie inými procesmi. Bez reštartu nebude problém s únikom pamäte vyriešený. Jedným konkrétnym procesom, ktorý má chyby v spomalení počítača, je Runtime Broker. Skúste, ak samotné vypnutie funguje.

2] Nástroje na diagnostiku pamäte

Diagnostika pamäte systému Windows

Prístup k vstavanému diagnostickému nástroju pamäte pre Windows:

  1. Uložte si všetku svoju dôležitú prácu.
  2. Stlačením klávesov Win + R otvorte okno Spustiť .
  3. V okne Spustiť zadajte príkaz mdsched.exe .
  4. Reštartujte počítač.
  5. Po reštartovaní vykonajte základné skenovanie alebo prejdite na možnosti „ Pokročilé “, ako napríklad „ Testovacia zmes “ alebo „ Počet prístupov “.
  6. Stlačením klávesu F10 spustite test.

Stále ide o dočasné opravy.

3] Skontrolujte dostupnosť aktualizácií ovládačov

Aktualizujte softvér ovládača

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

  1. Stlačte kombináciu klávesov Win + R a otvorte okno Spustiť . Zadajte príkaz devmgmt.msc a stlačte kláves Enter. Dostanete sa do Správcu zariadení .
  2. Skontrolujte zastarané ovládače a aktualizujte ich všetky.
  3. Aktualizácie, ktoré vám mohli chýbať, nájdete v službe Windows Update.

Toto bolo jednoduché.

4] Optimalizujte výkon

Nastavte pre najlepší výkon

Úpravou systému Windows podľa výkonu sa bude riadiť všetko vrátane plánovania procesora a využitia pamäte, aby sa zabránilo únikom pamäte. Nasleduj tieto kroky:

  1. Pravým tlačidlom myši kliknite na „ Tento počítač “ a v ľavom paneli vyberte možnosť „ Pokročilé “.
  2. Na karte „ Spresnenie “ prejdite na „ Výkon “ a potom na položku „ Nastavenia “.
  3. Začiarknite políčkoUpraviť pre najlepší výkon “ a kliknite na tlačidlo OK .
  4. Reštartujte a skontrolujte, či je problém vyriešený.

Ak toto jednoduché riešenie nefungovalo, vyskúšajte ďalšie riešenie.

5] Zakážte programy spustené pri štarte

Štartovacie programy

Vypnutie problematických programov je jediný spôsob, ako sa zbaviť problému s únikom pamäte. Prejdite do Správcu úloh a deaktivujte program na riešenie problémov. Ak neviete, ktoré programy spôsobujú problémy, postupujte takto:

  1. Prejdite do „ Správcu úloh “.
  2. Prejdite na „ Spustenie “.
  3. Zakážte spúšťacie programy, ktoré nemusíte predvolene spúšťať.

6] Defragmentujte pevný disk

Defragmentácia disku

Aj keď to Windows 10 robí za vás automaticky, kvôli optimalizácii výkonu budete možno musieť občas defragmentovať pevné disky:

  1. Prejdite na „ Tento počítač “ alebo „ Tento počítač “.
  2. Pravým tlačidlom myši kliknite na pevný disk systému (zvyčajne jednotka C:).
  3. Prejdite do ponuky „ Nástroje “ v časti „ Vlastnosti “ a vyberte možnosť „ Optimalizovať “.
  4. Vyberte jednotku, ktorú chcete defragmentovať, a vyberte možnosť Analyzovať .

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

7] ClearPage File pri vypnutí

Teraz sa to stáva zložitým - ale nebojte sa. Tu je postup, ako vymazať súbor stránky pri každom vypnutí:

  • Zadaním príkazu regedit do vyhľadávacieho poľa spustíte Editor databázy Registry.
  • Zadajte túto cestu:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
  • Zmeňte hodnotu ClearPageFileAtShutDown na „1“.
  • Uložte zmeny a reštartujte zariadenie.

Toto by sa malo urobiť. Pamätajte, že váš proces vypnutia bude trvať trochu viac času.

9] Zakážte Superfetch

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

  1. Vyhľadajte services.msc a prejdite do Správcu služieb.
  2. Vyhľadajte položku „ Superfetch “ a kliknutím pravým tlačidlom myši prejdite na položku „ Vlastnosti “.
  3. Vyberte možnosť Zastaviť .
  4. Službu tiež deaktivujte z rozbaľovacej ponuky.
  5. Reštartujte počítač a skontrolujte, či sa výkon zlepšil.

Ak tento nefunguje, povoľte Superfetch.

10] Skontrolujte prítomnosť malvéru

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

Každé riešenie, ktoré budete niekedy potrebovať na nájdenie alebo zabránenie úniku pamäte, je tu. Viac informácií o únikoch pamäte si môžete prečítať na stránkach MSDN a Microsoft.

Original text


Úniky pamäte v systéme Windows 10