Week 7
Obsah:
A Únik paměti je špatné 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ž se paměť právě nedaří, přestože se nepoužívá.
Únik paměti v systému Windows 10
Než začnete, měli byste vědět, že Únik paměti je problém, který je třeba provést při ladění - například v jazyce Java, JavaScript, C / C ++, Windows atd. Fyzická výměna paměti RAM nebo pevného disku není vyžadována.
Proč je špatné
únik je špatný, protože je to chyba, chyba v systému. Ale zjistěte, jak přesně to ovlivňuje systém:
- Vzhledem k tomu, že paměť není uvolněna, i když ji nepoužíváte, vede k vyčerpání paměti.
- Vyčerpání paměti vede ke stárnutí softwaru
- vede k zvýšenému času odezvy a špatnému výkonu systému
- Neověřená netesnost paměti může nakonec vést k selhání aplikace.
Aby bylo možné zjistit únik paměti, programátor musí mít přístup ke zdrojovému kódu
Umístění úniku
Abychom problém vyřešili, musíme nejprve identifikovat. Základní kroky k nalezení úniku paměti jsou:
- Affirmation : Určení, zda došlo k úniku.
- Hledání úniku paměti jádra : Umístění úniku způsobené komponentou ovladače jádra.
- 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ělení jsou:
- Funkce HealAlloc pro přidělení paměti haldy. Ekvivalenty C / C ++ runtime jsou malloc a nové.
- Funkce VirtualAlloc pro přímou alokaci z operačního systému.
- Kernel32 API pro udržení paměti jádra pro aplikaci. Například CreateFile, CreateThread
- API User32 a API Gdi32
Prevence úniku paměti
Všichni víme, že prevence je lepší než vyléčení, takže zde jsou některé způsoby, jak zabránit úniku paměti
> Je třeba dbát o to, aby abnormální využití paměti RAM bylo prováděno jednotlivými programy a aplikacemi. Můžete přejít do Správce úloh systému Windows stisknutím
CTRL + SHIFT + ESC a přidat sloupce jako Úchytky, Uživatelské objekty, Objekty GDI atd. Nástroje pro diagnostiku úniku paměti
Různé nástroje diagnostikují úniky paměti pro různé režimy alokace:
Aplikační ověřovač diagnostikuje únik haldy
UMDH (součást nástrojů Windows Debugging Tools) diagnostikuje úniky pro jednotlivé procesy sledováním alokací paměti haldy.
- Tras Capture pro důkladnou analýzu využití RAM
- Xperf příliš sleduje alokační modely haldy.
- CRT Debug Heap nejen sleduje alokaci haldy, ale také umožňuje postupy kódování minimalizovat úniky. Detektor ladí úniky paměti v kódu
- Použití tipů
- Použijte jádro
- HANDLE
s a další inteligentní ukazatele pro prostředky Win32 a haldy alokace
- Získejte třídy pro automatické řízení zdrojů pro přidělení jádra ATL knihovny. Standardní jazyk C ++ má auto_ptr pro alokace haldy.
- Zapouzdření ukazatelů rozhraní COM v rámci "inteligentních ukazatelů" pomocí _com_ptr_t nebo
- _bstr_t nebo _variant_tSledování kódu.NET pro abnormální využití paměti Vyhněte se více výstupním cestám funkcí, které umožňují uvolnění alokací z proměnných ve většině bloků do konce funkce Použijte pouze nativní výjimky po uvolnění všech alokací v bloku _ konečně. Zalomit všechny alokace haldy a manipulace do inteligentních ukazatelů za účelem použití výjimek C ++.
- Vždy volání funkce
- 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 uvidíte, že zbytečný proces zabírá příliš mnoho paměti RAM, můžete ukončit proces v Správci ú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 tato funkce vypnuta
2] Nástroje pro diagnostiku paměti
Pro přístup k vestavěnému diagnostickému nástroji pro paměť Windows:
Uložte veškerou důležitou práci
Zadejte příkaz
- mdsched.exe
- v okně Run Restartujte počítač. restartujte, proveďte základní skenování nebo jděte na volby ` Advanced
- ` jako ` Test mix ` nebo ` F9
- To jsou stále dočasné opravy
- 3] Zkontrolujte aktualizace ovladače Zastaralé ovladače způsobují netěsnost paměti. Udržujte všechny ovladače aktualizované: Stiskněte Win + R a otevřete okno Run . Zadejte
- devmgmt.msc a stiskněte klávesu Enter. Kontrola zastaralých ovladačů a jejich aktualizace všech.
Pro aktualizace, které jste možná zmeškali, zkontrolujte Windows Update
To bylo jednoduché.
- 4] Optimalizace výkonu Úprava výkonu systému Windows spravuje vše, včetně plánování procesoru a využití paměti, aby se zabránilo úniku paměti. Postupujte podle následujících pokynů: Klepněte pravým tlačítkem myši na Tento počítač a vyberte v levém podokně nastavení Advanced . > Upravte nejvyšší výkon a klikněte na tlačítko
- OK.
Restartujte a zkontrolujte, zda je problém vyřešen
Pokud toto jednoduché řešení nefunguje, zkuste další řešení
5> Zakažte programy spuštěné při spuštění
- 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: Přejít na Správce úloh `. Přejít na
- Deaktivujte spouštěcí programy, které nepotřebujete ke spuštění ve výchozím nastavení 6] Defragmentace pevného disku Ačkoli to dělá Windows 10 automaticky, možná budete muset někdy defragmentovat pevné disky za účelem optimalizace výkonu:Tento počítač nebo Tento počítač
- `. Klikněte pravým tlačítkem myši na systémový pevný disk (obvykle C: drive). > `
- ` a vyberte `
Optimize
`. > Restartujte počítač po novém fragmentaci.
7] Soubor ClearPage při vypnutí
- Je to nyní komplexní - ale nemusíte se obávat. Chcete-li spustit Editor registru, zrušte zaškrtnutí políčka
- HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSessionManagement Management
Změňte hodnotu
ClearPageFileAtShutDown na `1`
- Uložte změny a restartujte zařízení To byste to měli udělat 9 Disable 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 sám izolovat problém: Search
- services.msc
- a přejděte do Správce služeb. Vyhledat ` Superfetch ` a klikněte pravým tlačítkem myši do Vlastnosti `. Zvolte`
- Stop `. Restartujte počítač a zkontrolujte, zda se výkon zlepšil.
Povolte službu Superfetch, pokud nefunguje.
10] Kontrola škodlivého softwaru
Použijte antivirový software od jiného výrobce nebo vlastní Windows Defender systému Windows 10 ke kontrole a odstranění škodlivého softwaru. Ujistěte se, že je antivirový program aktualizován, aby podporoval váš operační systém tak, aby nedošlo k tomu, že se stane 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 části
Přidělení fyzické paměti a stav paměti v systému Windows 7
Windows 7 udává, kolik fyzické paměti je v počítači aktuálně nainstalováno, které jsou k dispozici operačnímu systému a hardwarově vyhrazené paměti.
Odstranit Vyhledat aplikaci v obchodě v systému Windows 8
Tento tutoriál vám ukáže, jak přidání nebo odebrání volby Vyhledat aplikaci v obchodě z nabídky Vyberte výchozí program - Otevřít pomocí dialogu v systému Windows 8.
Pomocí nástroje pro diagnostiku paměti systému Windows zkontrolujte problémy s pamětí
Pomocí nástroje Diagnostika paměti Windows zjistěte problémy s pamětí