Najděte a opravte úniky paměti v systému Windows 10

Memory Leak je Nevhodné zdroj v počítačovém programu z důvodu chybného přidělení paměti. Stává se to, když nepoužívané místo RAM zůstane nevydané. Únik paměti nelze zaměňovat s únikem prostoru, což znamená program využívající více paměti RAM, než je nutné. K úniku paměti v systému Windows 10/8/7 se říká, že došlo, když paměť prostě není přístupná, přestože se nepoužívá.

Úniky paměti v systému Windows 10

Než začnete, měli byste vědět, že únik paměti je softwarový problém k ladění - například v Javě, JavaScriptu, C / C ++, Windows atd. Fyzická výměna paměti RAM nebo pevného disku není nutná.

Únik paměti v systému Windows 10

Proč je to špatné

Je zřejmé, že únik paměti je špatný, protože se jedná o chybu, chybu v systému. Ale pojďme zjistit, jak přesně to ovlivňuje systém:

  1. Protože paměť není uvolněna, i když se nepoužívá, vede k jejímu vyčerpání.
  2. Vyčerpání paměti má za následek stárnutí softwaru.
  3. Omezená dostupná paměť vede ke zvýšení doby odezvy a špatnému výkonu systému.
  4. Nekontrolovaný únik paměti může nakonec vést ke zhroucení aplikace.

Aby bylo možné identifikovat únik paměti, musí mít programátor přístup ke zdrojovému kódu programu.

Vyhledání úniku

Abychom problém vyřešili, musíme ho nejprve identifikovat. Základní kroky k vyhledání nevracení paměti jsou:

  1. Potvrzení : Určení, zda došlo k úniku.
  2. Nalezení úniku paměti v režimu jádra : Vyhledání úniku způsobeného komponentou ovladače v režimu jádra.
  3. Hledání úniku paměti v uživatelském režimu : Vyhledání úniku způsobeného ovladačem nebo aplikací v uživatelském režimu.

Přidělení paměti

Existují různé režimy, ve kterých aplikace přidělují RAM. Pokud se prostor po použití neuvolní, dojde k úniku paměti bez ohledu na režim přidělení. Některé běžné vzory alokace jsou:

  1. Funkce HealAlloc pro alokaci paměti haldy. Runtime ekvivalenty C / C ++ jsou malloc a nové.
  2. Funkce VirtualAlloc pro přímé přidělení z OS.
  3. Rozhraní Kernel32 API pro uložení paměti jádra pro aplikaci. Příklad, CreateFile, CreateThread.
  4. User32 API a Gdi32 API.

Zabránění úniku paměti

Všichni víme, že prevence je lepší než léčba, takže zde je několik způsobů, jak zabránit úniku paměti.

Monitorovací návyky

Úniky paměti v systému Windows 10

Musíte dávat pozor na abnormální využití RAM jednotlivými programy a aplikacemi. Do Správce úloh systému Windows můžete přejít stisknutím kombinace kláves CTRL + SHIFT + ESC a přidat sloupce, jako jsou rukojeti, uživatelské objekty, objekty GDI atd.

To vám pomůže snadno sledovat využití zdrojů.

Nástroje společnosti Microsoft k diagnostice úniků paměti

Různé nástroje diagnostikují úniky paměti pro různé režimy alokace:

  1. Ověřovač aplikací diagnostikuje úniky haldy.
  2. UMDH (součást Windows Debugging Tools) diagnostikuje úniky pro jednotlivé procesy sledováním přidělování haldy paměti.
  3. Trace Capture pro důkladnou analýzu využití RAM.
  4. Xperf také sleduje vzory přidělení haldy.
  5. CRT Debug Heap nejen sleduje přidělení haldy, ale také umožňuje postupy kódování minimalizovat úniky.
  6. Detektor úniku paměti JavaScript ladí úniky paměti v kódech.

Tipy pro použití

  1. Pro prostředky Win32 a přidělení haldy použijte HANDLE s jádrem a další podobné inteligentní ukazatele.
  2. Získejte třídy pro automatickou správu prostředků pro přidělení jádra z knihovny ATL. Standard C ++ má auto_ptr pro přidělení haldy.
  3. Encapsulate COM rozhraní ukazatele v „chytrých ukazatelů“ s pomocí _com_ptr_t nebo _bstr_t nebo _variant_t .
  4. Monitorujte .NET kód pro abnormální využití paměti.
  5. Vyhněte se více výstupním cestám pro funkce, které umožní uvolnění alokací z proměnných ve většině bloků do konce funkce.
  6. Nativní výjimky použijte až po uvolnění všech alokací v bloku _finally. Chcete-li použít výjimky C ++, zabalte všechny přidělení haldy a popisovačů do inteligentních ukazatelů.
  7. Před opětovnou inicializací nebo zahozením PROPVARIANT objektu vždy zavolejte funkci PropVariantClear.

Odstraňování úniků paměti v systému Windows

Stejně jako různé způsoby, jak zabránit úniku paměti, existují různé způsoby, jak zastavit úniky paměti. Ale než začnete, nezapomeňte nejprve vytvořit bod obnovení systému.

1] Ukončete procesy a restartujte.

Pokud vidíte, že zbytečný proces zabírá příliš mnoho RAM, můžete proces ukončit ve Správci úloh. Budete muset restartovat zařízení, aby uvolněné místo bylo k dispozici pro použití jinými procesy. Bez restartu nebude problém s únikem paměti vyřešen. Jedním konkrétním procesem, který má chyby zpomalující počítač, je Runtime Broker. Vyzkoušejte, zda samotné deaktivace funguje.

2] Nástroje pro diagnostiku paměti

Diagnostika paměti Windows

Přístup k vestavěnému nástroji pro diagnostiku paměti pro Windows:

  1. Uložte si veškerou důležitou práci.
  2. Stisknutím kláves Win + R otevřete okno Spustit .
  3. V okně Spustit zadejte příkaz mdsched.exe .
  4. Restartujte počítač.
  5. Po restartu proveďte základní skenování nebo přejděte na možnosti „ Pokročilé “, jako je „ Testovací mix “ nebo „ Počet průchodů “.
  6. Stisknutím klávesy F10 spusťte test.

Stále se jedná o dočasné opravy.

3] Zkontrolujte aktualizace ovladačů

Aktualizujte software ovladače

Zastaralé ovladače způsobují úniky paměti. Udržujte všechny ovladače aktualizované:

  1. Stiskněte Win + R a otevřete okno Spustit . Zadejte devmgmt.msc a stiskněte klávesu Enter. Dostanete se do Správce zařízení .
  2. Zkontrolujte zastaralé ovladače a aktualizujte je všechny.
  3. Aktualizace, které vám možná chyběly, najdete na webu Windows Update.

To bylo jednoduché.

4] Optimalizujte výkon

Upravte pro nejlepší výkon

Úpravou Windows na výkon zvládnete vše, včetně plánování procesoru a využití paměti, abyste zastavili úniky paměti. Následuj tyto kroky:

  1. Klikněte pravým tlačítkem na „ Tento počítač “ a v levém podokně vyberte nastavení „ Pokročilé “.
  2. Na kartě „ Pokročilé “ přejděte na „ Výkon “ a poté na „ Nastavení “.
  3. Zaškrtněte políčkoUpravit pro nejlepší výkon “ a klikněte na OK .
  4. Restartujte a zkontrolujte, zda je problém vyřešen.

Pokud toto jednoduché řešení nefungovalo, zkuste další řešení.

5] Zakažte programy spuštěné při spuštění

Spouštěcí programy

Jediným způsobem, jak se zbavit problému s únikem paměti, je deaktivace problémových programů. Přejděte do Správce úloh a deaktivujte problémový program. Pokud nevíte, které programy vytvářejí potíže, postupujte takto:

  1. Přejděte do Správce úloh .
  2. Přejděte na „ Spuštění “.
  3. Zakažte spouštěcí programy, které ve výchozím nastavení nepotřebujete spouštět.

6] Defragmentujte pevný disk

Defragmentace disku

I když to Windows 10 dělá za vás automaticky, možná budete muset občas provést defragmentaci pevných disků, abyste optimalizovali výkon:

  1. Přejděte na „ Tento počítač “ nebo „ Tento počítač “.
  2. Klepněte pravým tlačítkem myši na pevný disk systému (obvykle disk C:).
  3. Přejděte do části „ Nástroje “ v části „ Vlastnosti “ a vyberte možnost „ Optimalizovat “.
  4. Vyberte jednotku, kterou chcete defragmentovat, a vyberte možnost Analyzovat .

Po nové fragmentaci restartujte počítač.

7] Soubor ClearPage při vypnutí

Nyní je to složité - ale nebojte se. Zde je postup, jak vymazat soubor stránky při každém vypnutí:

  • Do vyhledávacího pole zadejte regedit a spusťte Editor registru.
  • Zadejte tuto cestu:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
  • Změňte hodnotu ClearPageFileAtShutDown na '1'.
  • Uložte změny a restartujte zařízení.

To by to mělo udělat. Nezapomeňte, že váš proces vypnutí bude trvat trochu déle.

9] Zakázat Superfetch

Tato služba Windows optimalizuje výkon minimalizací doby zavádění. Umožňuje systému Windows spravovat využití paměti RAM. Život po deaktivaci Superfetch není pohodlný, ale udělejte to, pokud musíte. Alespoň to zkuste izolovat problém:

  1. Vyhledejte services.msc a přejděte do Správce služeb.
  2. Vyhledejte možnost „ Superfetch “ a kliknutím pravým tlačítkem přejděte do nabídky „ Vlastnosti “.
  3. Vyberte možnost Zastavit .
  4. Službu také deaktivujte z rozevírací nabídky.
  5. Restartujte počítač a zkontrolujte, zda se výkon zlepšil.

Pokud tento nefunguje, povolte Superfetch.

10] Zkontrolujte, zda neobsahuje malware

Ke skenování a eliminaci malwaru použijte antivirový software třetí strany nebo interní Windows Defender systému Windows 10. Ujistěte se, že je antivirus aktualizován tak, aby podporoval váš operační systém, aby se nakonec nestal důvodem úniku paměti.

Každé řešení, které možná budete potřebovat k nalezení nebo prevenci úniku paměti, je právě tady. Můžete si přečíst více o úniku paměti na MSDN a Microsoft.

Original text


Úniky paměti v systému Windows 10