A Únik paměti je chybné umístění zdroje v počítači kvůli chybnému přidělení paměti. Stává se to, když zůstane nevydána pozice RAM, která se nepoužívá. Netěsnost paměti nesmí být zaměňována s únikem místa, což se týká programu, který používá více paměti RAM, než je nutné. Únik paměti v systémech Windows 10/8/7 se vyskytuje, když paměť není dosud přístupná, přestože se nepoužívá.

Nedostatek 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 jazycích Java, JavaScript, C / C ++, Windows atd. Fyzická výměna paměti RAM nebo pevného disku se nevyžaduje.

Proč je to špatné

Je zřejmé, že únik paměti je špatný, protože je to chyba, chyba v systému. Ale zjistěte, jak přesně to ovlivňuje systém:

  1. Vzhledem k tomu, že paměť není uvolněna, i když ji nepoužíváte, dochází k vyčerpání paměti.
  2. Vyčerpání paměti vede ke stárnutí softwaru.
  3. Snížená dostupná paměť vede k vyšší době odezvy a špatnému výkonu systému.
  4. Nezajištěná nevracení paměti může nakonec vést k havárii aplikace.

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

Umístění úniku

Abychom problém vyřešili, musíme nejprve identifikovat. Základní kroky k nalezení úniku paměti jsou:

  1. Potvrzení: Určení, zda došlo k úniku.
  2. Vyhledání nevracení paměti v režimu Kernel: Umístění úniku způsobené komponentou ovladače jádra.
  3. Hledání úniku paměti uživatelského režimu: Umístění úniku způsobené 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í paměť RAM. Pokud se prostor po použití nevypustí, nevracení paměti nastane bez ohledu na režim přidělení. Některé běžné modely přidělování jsou:

  1. Funkce HealAlloc pro přidělení paměti haldy. C / C ++ runtime ekvivalenty jsou malloc a nové.
  2. Funkce VirtualAlloc pro přímé přidělování z operačního systému.
  3. Kernel32 API pro udržení paměti jádra pro aplikaci. Příklad, CreateFile, CreateThread.
  4. Rozhraní API pro uživatelské rozhraní 32 a API Gdi32.

Zabraňte úniku paměti

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

Monitorovací návyky

Je třeba dbát na to, aby abnormální využití paměti RAM bylo prováděno jednotlivými programy a aplikacemi. Správce úloh systému Windows můžete přejít stisknutím tlačítka CTRL + SHIFT + ESC a přidejte sloupce, jako jsou kliky, objekty uživatelů, objekty GDI atd.

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

Nástroje společnosti Microsoft pro diagnostiku úniků paměti

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

  1. Aplikace Verifier diagnostikuje únik haldy.
  2. UMDH (součást nástrojů Windows Debugging Tools) diagnostikuje netěsnosti jednotlivých procesů sledováním alokace paměti haldy.
  3. Trace Capture pro důkladnou analýzu využití RAM.
  4. Xperf příliš sleduje alokační schémata haldy.
  5. CRT Debug Heap nejen sleduje alokaci hromad, ale také umožňuje postupy kódování minimalizovat úniky.
  6. Detektor úniku paměti JavaScript ladí paměťové úniky v kódech.

Tipy pro použití

  1. Použijte jádro RUKOJEŤs a další inteligentní ukazatele pro zdroje Win32 a přidělené haldy.
  2. Získejte kurzy pro automatické řízení zdrojů pro přidělení jádra z knihovny ATL. Standard C + + auto_ptr pro přidělení haldy.
  3. Zapouzdření ukazatelů rozhraní rozhraní COM do "inteligentních ukazatelů" pomocí funkce _com_ptr_t nebo _bstr_t nebo _variant_t.
  4. Sledujte kód .NET pro abnormální využití paměti.
  5. Vyhněte se několika cestám pro výstup, které umožňují uvolnění alokací z proměnných ve většině bloků do konce funkce.
  6. Použijte nativní výjimky pouze po uvolnění všech alokací v bloku _finaly. Zalomit všechny alokace haldy a manipulace do inteligentních ukazatelů za účelem použití výjimek C ++.
  7. Vždy volejte PropVariantClear před reinitializací nebo vyřazením objektu PROPVARIANT.

Odstraňování problémů s únikem paměti v systému Windows

Stejně jako různé způsoby, jak zabránit úniku paměti, existují různé způsoby, jak zabránit úniku paměti.

1] Zavřete procesy a restartujte.

Pokud zjistíte, že zbytečný proces zabírá příliš mnoho paměti RAM, proces můžete ukončit v nástroji Správce úloh. Budete muset restartovat zařízení tak, aby uvolněné místo bylo k dispozici pro použití jinými procesy. Bez problému restartu nebude problém s únikem paměti vyřešen. Jeden konkrétní proces, který má chyby ke zpomalení počítače je Runtime Broker. Vyzkoušejte, pokud je zakázáno fungování samotné.

2] Nástroje pro diagnostiku paměti

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

  1. Uložte veškerou důležitou práci.
  2. lis Win + R k otevření 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 na položku 'Pokročilý'Možnosti jako'Testovací směs"Nebo"Počet průchodů’.
  6. lis F10 spustit test.

Jsou to stále dočasné opravy.

3] Zkontrolujte aktualizace ovladače

Zastaralé ovladače způsobují únik paměti. Udržujte všechny ovladače aktualizovány:

  1. lis Win + R a otevřete Běh okno. Typ devmgmt.msc a stiskněte klávesu Enter. Přijde vás k Správce zařízení.
  2. Zkontrolujte staré ovladače a aktualizujte je všechny.
  3. V případě aktualizací, které jste možná zmeškali, zkontrolujte Windows Update.

To bylo jednoduché.

4] Optimalizujte výkon

Úprava výkonu systému Windows spravuje vše, včetně plánování procesorů a využití paměti, aby se zabránilo úniku paměti. Následuj tyto kroky:

  1. Klepněte pravým tlačítkem na 'Tento počítač'A vyberte'Pokročilý'V levém podokně.
  2. Pod 'Pokročilý', Přejděte na'Výkon', následován 'Nastavení’.
  3. Kontrola 'Nastavte nejlepší výkon'A klikněte OK.
  4. Restartujte a zkontrolujte, zda je problém vyřešen.

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

5] Zakázat programy spuštěné při spuštění

Zakázání problémových programů je jediný způsob, jak se zbavit problému úniku paměti. Přejděte do Správce úloh a vypněte problémový program. Pokud nevíte, které programy způsobují potíže, postupujte takto:

  1. Jít do 'Správce úloh’.
  2. Jít do 'Uvedení do provozu’.
  3. Deaktivujte spouštěcí programy, které ve výchozím nastavení nepotřebujete ke spuštění.

6] Defrag pevný disk

Přestože to dělá Windows 10 pro vás automaticky, možná budete muset někdy defrakovat pevné disky za účelem optimalizace výkonu:

  1. Jít do 'Tento počítač"Nebo"Můj počítač’.
  2. Klepněte pravým tlačítkem myši na systémový pevný disk (obvykle C: drive).
  3. Jít do 'Nástroje"Pod"Vlastnosti'A vyberte'Optimalizovat’.
  4. Vyberte jednotku, kterou chcete defragmentovat, a vyberte možnost 'Analyzovat’.

Restartujte počítač po nové fragmentaci.

7] Soubor ClearPage při vypnutí

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

  1. Typ regedit na stránce Hledat spusťte Editor registru.
  2. Zadejte tuto cestu: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSessionManagement Manager
  3. Změňte hodnotu ClearPageFileAtShutDown na '1'.
  4. Uložte změny a restartujte zařízení.

To by to mělo dělat.

9] Zakázat službu Superfetch

Tato služba Windows optimalizuje výkon minimalizací doby spouštění. Umožňuje systému Windows spravovat využití paměti RAM. Život po vypnutí programu Superfetch není vhodný, ale udělej to, pokud je to nutné. Alespoň zkuste to samo o sobě izolovat problém:

  1. Vyhledávání services.msc a přejděte do Správce služeb.
  2. Hledat 'Superfetch'A klikněte pravým tlačítkem myši na'Vlastnosti’.
  3. Vyberte 'Stop’.
  4. Taky 'Zakázat'Službu z rozbalovací nabídky.
  5. Restartujte počítač a zkontrolujte, zda se výkon zlepšil.

Povolit službu Superfetch, pokud nefunguje.

10] Kontrola škodlivého softwaru

Použijte antivirový software třetí strany nebo vlastní Windows Defender systému Windows 10 ke skenování a odstranění škodlivého softwaru. Ujistěte se, že je antivirový program aktualizován tak, aby podporoval váš operační systém, takže se neshoduje s důvodem úniku paměti.

Každé řešení, které byste někdy potřebovalo najít nebo zabránit úniku paměti, je tady. Další informace o úniku paměti na webu MSDN a Microsoft naleznete v tématu.

Související příspěvky:

  • Opravte chyby Windows Stop nebo modrou obrazovku smrti
  • Proč Windows zobrazuje méně paměti RAM, než je nainstalována?
  • Make Windows 10 Start, Run, Shutdown rychleji
  • Limity fyzické paměti v souborech s výpadky paměti pro Windows 10/8/7
  • Komprese paměti v systému Windows 10

Nejlepší Tipy:
Komentář: