Memóriaszivárgások keresése és javítása a Windows 11/10 rendszerben
A memóriaszivárgás(Memory Leak) az erőforrások helytelen elhelyezése egy számítógépes programban a hibás memóriafoglalás miatt. Ez akkor fordul elő, ha egy nem használt RAM hely kiadatlan marad. A memóriaszivárgás nem tévesztendő össze a helyszivárgással, amely arra utal, hogy egy program a szükségesnél több RAM -ot használ . Memóriaszivárgás a Windows 11/10/8/7 rendszeren állítólag akkor történt, amikor a memória nem érhető el annak ellenére, hogy nincs használatban.
Memóriaszivárgás a Windows 11/10 rendszerben
Mielőtt elkezdené, tudnia kell, hogy a memóriaszivárgás(Memory) egy hibakereső szoftverprobléma – például Java , JavaScript , C/C++, Windows stb. esetén. A RAM vagy a merevlemez fizikai cseréje nem szükséges.
Miért rossz
Nyilvánvaló, hogy a memóriaszivárgás rossz, mert ez egy hiba, a rendszer hibája. De nézzük meg, hogy ez pontosan milyen hatással van a rendszerre:
- Mivel a memória akkor sem szabadul fel, ha nincs használatban, ez a memória kimerüléséhez vezet.
- A memória kimerülése a szoftver elöregedéséhez vezet.
- A rendelkezésre álló memória csökkenése megnövekedett válaszidőhöz és a rendszer gyenge teljesítményéhez vezet.
- Az ellenőrizetlen memóriaszivárgás végül egy alkalmazás összeomlásához vezethet.
A memóriaszivárgás azonosításához a programozónak hozzá kell férnie a program forráskódjához.
A szivárgás helyének meghatározása
A probléma megoldásához először azonosítanunk kell. A memóriaszivárgás felderítésének alapvető lépései a következők:
- Megerősítés(Affirmation) : annak meghatározása, hogy történt-e szivárgás.
- Kernel módú memóriaszivárgás keresése(Finding Kernel-mode memory leak) : Kernel módú illesztőprogram-összetevő által okozott szivárgás megkeresése.
- Felhasználói módú memóriaszivárgás keresése(Finding User-mode memory leak) : Felhasználói módú illesztőprogram vagy alkalmazás által okozott szivárgás megkeresése.
Memóriakiosztás
Az alkalmazások különböző módokban foglalják le a RAM -ot . Ha a használat után nem szabadul fel hely, a memóriaszivárgás az elosztás módjától függetlenül megtörténik. Néhány gyakori elosztási minta:
- HealAlloc funkció a kupac memória lefoglalásához. A C/C++ futásidejű megfelelői malloc és újak.
- VirtualAlloc funkció az operációs rendszerből történő közvetlen kiosztáshoz.
- Kernel32 API(Kernel32 APIs) -k az alkalmazás kernelmemóriájának tárolására. Példa(Example) , CreateFile , CreateThread .
- User32 API-k és Gdi32 API-k.
Memóriaszivárgások megelőzése a Windows rendszerben
Mindannyian tudjuk, hogy a megelőzés jobb, mint a gyógyítás, ezért íme néhány módszer a memóriaszivárgás megelőzésére.
Szokások megfigyelése
Figyelnie kell az egyes programok és alkalmazások rendellenes RAM -használatára. A Windows Feladatkezelőbe(Windows Task Manager) léphet a CTRL CTRL+SHIFT+ESC , és hozzáadhatja az olyan oszlopokat, mint a Handles , User Objects , GDI Objects stb.
Ez segít az erőforrás-felhasználás egyszerű nyomon követésében.
Olvassa el(Read) : Melyek a számítógép memóriatípusai?(What are the Types of Memory in a computer?)
Microsoft eszközök a memóriaszivárgások diagnosztizálására
Különféle eszközök diagnosztizálják a memóriaszivárgásokat különböző kiosztási módokhoz:
- Az Alkalmazás-ellenőrző(Application Verifier) diagnosztizálja a kupacszivárgásokat.
- Az UMDH(UMDH) (a Windows Debugging Tools egyik összetevője ) az egyes folyamatok szivárgását diagnosztizálja a halommemória-lefoglalások figyelésével.
- Trace Capture a (Capture)RAM - használat alapos elemzéséhez .
- Az Xperf is követi a kupackiosztási mintákat.
- A CRT Debug Heap(CRT Debug Heap) nemcsak a kupacok kiosztását követi nyomon, hanem lehetővé teszi a kódolási gyakorlatokat is a szivárgások minimalizálása érdekében.
- A JavaScript memóriaszivárgás-érzékelő(JavaScript Memory Leak Detector) hibakeresi a kódok memóriaszivárgását.
Használati tippek
- Használja a kernel HANDLE -t és más intelligens mutatókat a Win32 erőforrásokhoz és kupacok kiosztásához.
- Szerezzen(Get) be osztályokat az automatikus erőforrás-kezeléshez a kernelkiosztásokhoz az ATL - könyvtárból. A C++ szabványnak van auto_ptr -je a kupackiosztásokhoz.
- A COM(Encapsulate COM) interfész mutatóit beágyazza az „okos mutatókba” a _com_ptr_t vagy _bstr_t vagy _variant_t segítségével(_variant_t) .
- Figyelje(Monitor) a .NET kódot a rendellenes memóriahasználatra.
- Kerülje(Avoid) el a függvények több kilépési útvonalát, hogy a függvény végére a legtöbb blokkban az allokációk megszabaduljanak a változóktól.
- Csak azután használjon(Use) natív kivételeket, miután felszabadította az összes kiosztást a _finally blokkban. Csomagolja(Wrap) be az összes kupacot és kezelje az allokációt intelligens mutatókba a C++ kivételek használatához.
- Mindig hívja meg a PropVariantClear függvényt egy (PropVariantClear)PROPVARIANT objektum újrainicializálása vagy elvetése előtt .
Memóriaszivárgások elhárítása(Troubleshoot) a Windows rendszerben(Windows)
Csakúgy, mint a memóriaszivárgás megelőzésének különféle módjai, a memóriaszivárgások megállításának számos módja van. Mielőtt azonban elkezdené, ne felejtse el létrehozni a rendszer-visszaállítási pontot .
1] Zárja be a folyamatokat és indítsa újra.
Ha azt látja, hogy egy felesleges folyamat túl sok RAM -ot foglal el, leállíthatja a folyamatot a Feladatkezelőben(Task Manager) . Újra kell indítania az eszközt, hogy a felszabaduló terület elérhető legyen más folyamatok számára. Újraindítás(Restart) nélkül a memóriaszivárgás probléma nem oldódik meg. Az egyik olyan folyamat, amely hibákkal lassítja a számítógépet, a Runtime Broker . Próbáld meg, hogy egyedül ennek a letiltása működik-e.
2] Memóriadiagnosztikai eszközök
A Windows beépített memóriadiagnosztikai eszközének elérése:(Memory Diagnostic Tool)
- Mentse el az összes fontos munkáját.
- Nyomja meg a Win + R billentyűket a Futtatás(Run) ablak megnyitásához.
- Írja be az mdsched.exe parancsot a Futtatás(Run) ablakba.
- Indítsa újra a számítógépet.
- Újraindítás után hajtson végre egy alapszintű vizsgálatot, vagy lépjen a ' Speciális(Advanced) ' opciókhoz, például a ' Tesztmix(Test mix) ' vagy a ' Pass count '.
- Nyomja meg az F10 -et a teszt elindításához.
Ezek még ideiglenes javítások.
3] Ellenőrizze az illesztőprogram-frissítéseket
Az elavult illesztőprogramok memóriaszivárgást okoznak. Tartsa frissítve az összes illesztőprogramot :
- Nyomja meg a Win + R billentyűket , és nyissa meg a Futtatás(Run) ablakot. Írja be a devmgmt.msc parancsot(devmgmt.msc) , és nyomja meg az Enter billentyűt . Ez az Eszközkezelőbe(Device Manager) viszi .
- Ellenőrizze(Check) az elavult illesztőprogramokat, és frissítse mindet.
- A frissítésekért, amelyeket esetleg elmulasztott, ellenőrizze a Windows Update webhelyen(Windows Update) .
Ez egyszerű volt.
4] A teljesítmény optimalizálása
A Windows teljesítményének beállítása mindent kezel, beleértve a processzor ütemezését és a memóriahasználatot a memóriaszivárgások megállítása érdekében. Kovesd ezeket a lepeseket:
- Kattintson a jobb gombbal az „ Ez a számítógép(This PC) ” elemre, és a bal oldali panelen válassza a „ Speciális ” beállításokat.(Advanced)
- A „ Speciális(Advanced) ” lapon lépjen a „ Teljesítmény(Performance) ” elemre , majd a „ Beállítások(Settings) ” elemre.
- Jelölje be a „ Beállítás a legjobb teljesítmény érdekében(Adjust for best performance) ” jelölőnégyzetet, majd kattintson az OK gombra(OK) .
- Indítsa újra(Restart) , és ellenőrizze, hogy a probléma megoldódott-e.
Ha ez az egyszerű megoldás nem működött, próbálkozzon a következő megoldással.
5] Az indításkor(Startup) futó programok(Programs) letiltása
A zavaró programok letiltása az egyetlen módja annak, hogy megszabaduljon a memóriaszivárgás problémájától. Lépjen a Feladatkezelőbe(Task Manager) , és tiltsa le a hibaelhárító programot. Ha nem tudja, mely programok okozzák a problémát, tegye a következőket:
- Lépjen a „ Feladatkezelő(Task Manager) ” elemre.
- Lépjen az " Indítás(Startup) " elemre.
- Tiltsa le azokat az indító programokat(Disable the startup programs) , amelyeket alapértelmezés szerint nem kell futtatnia.
6] Merevlemez töredezettségmentesítése
Bár a Windows 10 ezt automatikusan elvégzi Ön helyett, előfordulhat, hogy a teljesítmény optimalizálása érdekében időnként töredezettségmentesítenie kell a merevlemezeket :
- Lépjen az „ Ez a számítógép(This PC) ” vagy a „ Sajátgép(My Computer) ” elemre.
- Kattintson jobb gombbal(Right-Click) a rendszer merevlemezére (általában C: meghajtó).
- Lépjen az " Eszközök(Tools) " elemre a " Tulajdonságok(Properties) " alatt, és válassza az " Optimalizálás(Optimize) " lehetőséget.
- Válassza ki a töredezettségmentesítéshez szükséges meghajtót, és válassza az „ Elemzés(Analyze) ” lehetőséget.
Indítsa újra a számítógépet az új töredezettség után.
7] ClearPage fájl leállításkor
Most kezd bonyolulttá válni – de ne aggódj. A következőképpen törölheti az oldalfájlt minden leállításkor(clear the Page File at every shutdown) :
- A Rendszerleíróadatbázis-szerkesztő(Registry Editor) elindításához írja be a regedit parancsot(regedit) a Search mezőbe .
- Írja be ezt az elérési utat:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
- Módosítsa a ClearPageFileAtShutDown értékét „1”-re.( ClearPageFileAtShutDown to ‘1’.)
- Mentse el a változtatásokat, és indítsa újra(Restart) az eszközt.
Ennek meg kellene tennie. Ne feledje, hogy a leállítási folyamat egy kicsit több időt vesz igénybe.
9] A Superfetch letiltása
Ez a Windows-szolgáltatás(Windows Service) a rendszerindítási idő minimalizálásával optimalizálja a teljesítményt. Lehetővé teszi a Windows számára a (Windows)RAM - használat kezelését . A Superfetch(Superfetch) letiltása utáni élet(Life) nem kényelmes, de ha kell, tegye meg. Legalább ezt próbálja meg egyedül a probléma elkülönítéséhez:
- Keresse meg a services.msc fájlt, és lépjen a Services Manager oldalra.
- Keresse meg a „ Superfetch ” elemet , és kattintson rá a jobb gombbal a „ Tulajdonságok(Properties) ” megnyitásához.
- Válassza a „ Stop ” lehetőséget.
- A legördülő menüből válassza ki a szolgáltatás letiltását is.(Disable)
- Indítsa újra a számítógépet, és ellenőrizze, hogy javult-e a teljesítmény.
Engedélyezze a Superfetch-et, ha ez nem működött.
10] Ellenőrizze a rosszindulatú programokat
Használjon harmadik féltől származó víruskereső szoftvert vagy a Windows 10 házon belüli Windows Defenderjét(Windows Defender) a rosszindulatú programok ellenőrzéséhez és eltávolításához. Győződjön(Make) meg arról, hogy a víruskereső frissítve van, hogy támogassa az operációs rendszert, hogy végül ne ez legyen a memóriaszivárgás oka.
Itt található minden megoldás, amelyre szüksége lehet a memóriaszivárgások felkutatására vagy megelőzésére. A memóriaszivárgásokról az MSDN(MSDN) -en és a Microsofton(Microsoft) olvashat bővebben .
Related posts
Small Memory Dump (dmp) fájlok megnyitása és olvasása Windows 11/10 rendszerben
A Windows Memory Diagnostics Tool futtatása a Windows 11/10 rendszerben
Hogyan lehet növelni az oldalfájl méretét vagy a virtuális memóriát a Windows 11/10 rendszerben
Crash Dump fájl manuális létrehozása a Windows 11/10 rendszerben
Explorer.exe nagy memória- vagy processzorhasználat a Windows 11/10 rendszerben
A mag elkülönítésének és a memória integritásának engedélyezése vagy letiltása a Windows 11/10 rendszerben
Az Archív alkalmazások funkció engedélyezése vagy letiltása a Windows 11/10 rendszerben
A HDMI-lejátszó eszköz nem jelenik meg a Windows 11/10 rendszerben
Állítsa be a Notepad++-t alapértelmezett szerkesztőként az .xml-fájlokhoz a Windows 11/10 rendszerben
Windows 10 memóriaszivárgások elhárítása
Javítsa ki a Chrome magas CPU-, memória- vagy lemezhasználatát a Windows 11/10 rendszerben
Javítsa ki a WerMgr.exe vagy WerFault.exe alkalmazáshibáját a Windows 11/10 rendszerben
Hogyan lehet növelni a dedikált videoRAM-ot a Windows 11/10 rendszerben
A CPU nem fut teljes sebességgel vagy kapacitással a Windows 11/10 rendszerben
Mi az a PLS fájl? Hogyan lehet PLS fájlt létrehozni a Windows 11/10 rendszerben?
Mi az a PPS fájl? Hogyan lehet PPS-t PDF-be konvertálni a Windows 11/10 rendszerben?
A memória-gyorsítótár törlése a Windows 11/10 rendszerben
Radardiagram létrehozása Windows 11/10 rendszerben
Hogyan lehet megnyitni a Rendszer tulajdonságait a Vezérlőpulton a Windows 11/10 rendszerben
A 100%-os lemez, magas CPU, nagy memóriahasználat javítása a Windows 11/10 rendszerben