Paměť

Jak najít a opravit úniky paměti v systému Windows 10

Jak najít a opravit úniky paměti v systému Windows 10

A Únik paměti je nesprávné umístění prostředků v počítačovém programu v důsledku 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 místa, 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ěť není právě 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 RAM nebo pevného disku není nutná.

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. Hledání ú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 po použití místo 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

Musíte dávat pozor na abnormální využití paměti RAM jednotlivými programy a aplikacemi. Do Správce úloh systému Windows můžete přejít stisknutím CTRL + SHIFT + ESC a přidejte sloupce jako Rukojeti, Uživatelské objekty, GDI objekty atd.

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

Číst: Jaké jsou typy paměti v počítači?

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. Použijte jádro RUKOJEŤs a další inteligentní ukazatele pro prostředky Win32 a přidělení haldy.
  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. Zapouzdřit ukazatele rozhraní COM do „inteligentních ukazatelů“ 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. Vždy volejte PropVariantClear funkce před opětovnou inicializací nebo vyřazením PROPVARIANT objektu.

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ý obsahuje chyby zpomalující počítač, je Runtime Broker. Vyzkoušejte, zda samotné deaktivace funguje.

2] Nástroje pro diagnostiku paměti

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. lis Win + R otevřít Běh okno.
  3. Zadejte příkaz mdsched.exe v Běh okno.
  4. Restartujte počítač.
  5. Po restartu proveďte základní skenování nebo přejděte naPokročilý'možnosti jako'Testovací směs'nebo'Počet průchodů''.
  6. lis F10 zahájit test.

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

3] Zkontrolujte aktualizace ovladačů

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

  1. lis Win + R a otevřete Běh okno. Typ devmgmt.msc a stiskněte klávesu Enter. Vezme vás 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

Ú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 vyberte'Pokročilý'nastavení v levém podokně.
  2. Pod 'Pokročilý'karta, přejít na'Výkon', následován 'Nastavení''.
  3. Šek 'Upravte pro nejlepší výkon'a klikněte 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í

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. Jít do 'Správce úloh''.
  2. Jít do '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

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. Jít do 'Tento počítač'nebo'Můj počítač''.
  2. Klepněte pravým tlačítkem myši na pevný disk systému (obvykle disk C:).
  3. Jít do 'Nástroje'pod'Vlastnosti'a vyberte'Optimalizovat''.
  4. Vyberte jednotku, kterou chcete defragmentovat, a vyberte 'Analyzovat''.

Po nové fragmentaci restartujte počítač.

7] Soubor ClearPage při vypnutí

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

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management

To by mělo být provedeno. 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. Vyhledávání služby.msc a přejděte na Správce služeb.
  2. Hledat 'Superfetch'a kliknutím pravým tlačítkem přejdete na'Vlastnosti''.
  3. Vyberte 'Stop''.
  4. Taky 'Zakázat„služba 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.

Hry Porty komerčních her s otevřeným zdrojovým kódem
Porty komerčních her s otevřeným zdrojovým kódem
Zdarma, s otevřeným zdrojovým kódem a multiplatformní herní enginy lze hrát staré i některé z poměrně nedávných herních titulů. Tento článek uvede sez...
Hry Nejlepší hry z příkazového řádku pro Linux
Nejlepší hry z příkazového řádku pro Linux
Příkazový řádek není při používání Linuxu jen vaším největším spojencem - může být také zdrojem zábavy, protože jej můžete použít k hraní mnoha zábavn...
Hry Nejlepší aplikace pro mapování gamepadu pro Linux
Nejlepší aplikace pro mapování gamepadu pro Linux
Pokud rádi hrajete hry na Linuxu s gamepadem místo typického vstupního systému pro klávesnici a myš, máte k dispozici několik užitečných aplikací. Mno...