Pamäť

Ako nájsť a opraviť úniky pamäte v systéme Windows 10

Ako nájsť a opraviť úniky pamäte v systéme Windows 10

A Únik pamäte je nesprávne umiestnenie zdrojov v počítačovom programe v dôsledku 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 RAM alebo pevného disku sa nevyžaduje.

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

Na vyriešenie problému je potrebné ho najskôr identifikovať. Základné kroky na lokalizáciu úniku pamäte sú:

  1. Potvrdenie: Určenie, či došlo k úniku.
  2. Hľadá sa únik pamäte v režime jadra: Vyhľadanie úniku spôsobeného komponentom ovládača v režime jadra.
  3. Hľadá sa únik pamäte v užívateľskom režime: 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ú RAM. Ak sa po použití neuvoľní miesto, 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

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 CTRL + SHIFT + ESC a pridať stĺpce ako Rukoväte, Používateľské objekty, GDI objekty atď.

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

Čítať: Aké sú typy pamäte v počítači?

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 jadro RÚČKAs a ďalšie inteligentné ukazovatele pre zdroje Win32 a alokácie hald.
  2. Získajte triedy na automatickú správu prostriedkov pre alokácie jadra z knižnice ATL. Štandard C ++ má auto_ptr pre pridelenie haldy.
  3. Zapuzdriť ukazovatele rozhrania COM do „inteligentných ukazovateľov“ pomocou _com_ptr_t alebo _bstr_t alebo _variant_t.
  4. Monitorujte .NET kód pre abnormálne využitie pamäte.
  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. Vždy volajte PropVariantClear pred opätovnou inicializáciou alebo zahodením PROPVARIANTNÉHO objektu.

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

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čte Win + R otvoriť Bež okno.
  3. Zadajte príkaz mdsched.exe v Bež okno.
  4. Reštartujte počítač.
  5. Po reštarte vykonajte základné skenovanie alebo prejdite naPokročilé„možnosti ako“Testovacia zmes„alebo“Počet prihrávok„.
  6. Stlačte F10 na spustenie testu.

Stále ide o dočasné opravy.

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

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

  1. Stlačte Win + R a otvorte Bež okno. Typ devmgmt.msc a stlačte kláves Enter. Zavedie vás do Správca 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

Ú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. Kliknite pravým tlačidlom myši na 'Tento počítač'a vyberte'Pokročilé„nastavenia na ľavej table.
  2. Pod 'Pokročilé„karta, prejsť na“Výkon', nasledovaný 'nastavenie„.
  3. Skontrolujte 'Nastavte pre najlepší výkon'a kliknite 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

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. Ísť do 'Správca úloh„.
  2. Ísť do 'Začiatok„.
  3. Zakážte spúšťacie programy, ktoré nemusíte predvolene spúšťať.

6] Defragmentujte pevný disk

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. Ísť do 'Tento počítač„alebo“Môj počítač„.
  2. Pravým tlačidlom myši kliknite na pevný disk systému (zvyčajne jednotka C:).
  3. Ísť do 'Náradie„pod“Vlastnosti'a vyberte'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í:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management

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ľadávanie služby.msc a prejdite na Správcu služieb.
  2. Hľadať 'Super načítanie„a kliknutím pravým tlačidlom myši prejdete na“Vlastnosti„.
  3. Vyberte 'Prestaň„.
  4. Tiež 'Zakázať„služba 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žívajte 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.

Hry Výukový program Battle for Wesnoth
Výukový program Battle for Wesnoth
Battle for Wesnoth je jednou z najpopulárnejších open source strategických hier, ktoré si v súčasnosti môžete zahrať. Táto hra bola nielen vyvinutá ve...
Hry 0 A.D. Výukový program
0 A.D. Výukový program
Z mnohých strategických hier je tu 0 A.D. dokáže vyniknúť ako komplexný titul a veľmi hlboká, taktická hra napriek tomu, že je otvoreným zdrojom. Vývo...
Hry Výukový program pre Unity3D
Výukový program pre Unity3D
Úvod do Unity 3D Unity 3D je výkonný nástroj na vývoj hier. Je to multiplatforma, ktorá vám umožňuje vytvárať hry pre mobilné telefóny, web, počítače ...