A Memória Szivárgás a hibás memóriaelosztás miatt a számítógépes program erőforrásainak hibás elhelyezése. Ez akkor történik, ha egy nem használt RAM hely megmarad. A memória szivárgást nem szabad összetéveszteni egy űrszivárgással, ami a RAM-nál több RAM-t használó programra utal. A Windows 10/8/7 rendszer memóriaszivárgása azt mondta, hogy akkor történt, amikor a memória egyszerűen nem elérhető, annak ellenére, hogy nincs használatban.
Memóriavesztés a Windows 10 rendszerben
Mielőtt elkezdené, tudnia kell, hogy a memória szivárgás problémát jelent a hibakereséshez - például Java, JavaScript, C / C ++, Windows stb. Esetében. A RAM vagy a merevlemez fizikai helyettesítése nem szükséges.
Miért rossz
Nyilvánvaló, hogy a memória szivárgása rossz, mert hiba, hiba a rendszerben. De derítsük ki, hogy pontosan milyen hatással van a rendszerre:
- Mivel a memória még akkor sem szabadul fel, ha nincs használatban, ez a memória kimerülését eredményezi.
- A memória kimerülése a szoftver öregedését eredményezi.
- A csökkentett rendelkezésre álló memória növeli a válaszidőt és a rendszer teljesítményét.
- A nem ellenőrzött memória szivárgás végül egy alkalmazás összeomlásához vezethet.
A memóriaszivárgás azonosítása érdekében a programozónak hozzáférést kell biztosítania a program forráskódjához.
A szivárgás megtalálása
A probléma megoldásához először be kell azonosítanunk. A memóriaszivárgás megtalálásának alapvető lépései:
- Megerősítés: Annak megállapítása, hogy szivárgás történt-e.
- Kernel módú memória szivárgás keresése: A rendszermag-módú illesztőprogram okozta szivárgás megállapítása.
- A felhasználói módú memória szivárgásának megállapítása: A felhasználói módú illesztőprogram vagy alkalmazás által okozott szivárgás megállapítása.
Memóriaelosztás
Vannak különböző módok, amelyekben az alkalmazások RAM-t különítenek el. Ha a helyet használat után nem szabadítják fel, a memória szivárgás az elosztás módjától függetlenül megy végbe. Néhány közös elosztási mintázat:
- HealAlloc funkció a heap memóriaelosztáshoz. A C / C ++ futásidejű egyenértékek malloc és újabbak.
- VirtualAlloc funkció az operációs rendszer közvetlen elosztásához.
- Kernel32 API-k a kernel memóriájának az alkalmazáshoz való tartásához. Példa: CreateFile, CreateThread.
- User32 API-k és Gdi32 API-k.
A memória szivárgásának megakadályozása
Mindannyian tudjuk, hogy a megelőzés jobb, mint a gyógyítás, ezért itt van néhány módja annak, hogy megakadályozzuk a memória szivárgását.
Felügyeleti szokások
Figyelnie kell az egyedi programok és alkalmazások rendellenes RAM használatára. A Windows Feladatkezelőhöz nyomja meg a gombot CTRL + SHIFT + ESC és hozzáadja az oszlopokat, például Címkék, Felhasználói objektumok, GDI-objektumok stb.
Ez segít könnyedén figyelni az erőforrások használatát.
Microsoft szerszámok a memória szivárgás diagnosztizálására
Különböző eszközök diagnosztizálják a memória szivárgást különböző elosztási módok esetén:
- Alkalmazás-ellenőrző diagnosztizálja a halom szivárgásokat.
- Az UMDH (a Windows hibakereső eszközök egyik összetevője) diagnosztizálja az egyedi folyamatok szivárgását a heap memória-allokációk felügyeletével.
- Trace Capture a RAM-használat alapos elemzéséhez.
- Az Xperf is nyomon követi a halomelosztási mintákat.
- A CRT Debug Heap nemcsak a heapkiosztásokat követi, de lehetővé teszi a kódolási gyakorlatokat is a szivárgások minimalizálása érdekében.
- JavaScript Memory Leak Detector hibakeresési hibákat szivárog a kódokban.
Használati tippek
- Használja a rendszermagot FOGANTYÚs és más intelligens mutatók a Win32 erőforrások és a heap kiosztások.
- Szerezd meg az osztályokat az automatikus erőforrás-menedzsmenthez a kernel-allokációkhoz az ATL könyvtárból. A C ++ szabvány rendelkezik auto_ptr a halak elosztásához.
- Encapsulate COM interfész mutatók az "intelligens mutatók" segítségével _com_ptr_t vagy _bstr_t vagy _variant_t.
- Figyelje a.NET kódot abnormális memóriahasználatra.
- Kerülje el a több kimeneti útvonalat a funkciókhoz, hogy a függvények végén a legtöbb blokkban a változók szabaduljanak fel.
- Használjon csak az eredeti kivételeket, miután felszabadította az összes összeget a _finally blokkban. Összecsomagolja az összes kupacot, és kezelje az allokációkat intelligens mutatókkal, hogy C ++ kivételeket használjon.
- Mindig hívja a PropVariantClear funkciót a PROPVARIANT objektum újbóli inicializálása vagy visszadobása előtt.
A memóriában szivároghat a Windows rendszerben
Csakúgy, mint a memóriazavarok elkerülésére szolgáló különböző módszerek, a memória szivárgásának megakadályozására számos lehetőség van.
1] Zárja be a folyamatokat és indítsa újra.
Ha úgy látja, hogy egy felesleges folyamat túl sok RAM-ot igényel, akkor befejezheti a folyamatot a Feladatkezelőben. Újra kell indítani az eszközt, hogy a szabad hely rendelkezésre álljon más folyamatok számára. Újraindítás nélkül a memóriaszivárgás problémája nem fog megoldódni. Az egyik olyan folyamat, amelynek hibái vannak a számítógép lelassításához, a Runtime Broker. Próbáld meg kikapcsolni, hogy egyedül működik.
2] Memória-diagnosztikai eszközök
- Mentse el minden fontos munkáját.
- nyomja meg Win + R megnyitni Fuss ablak.
- Írja be a parancsot mdsched.exe ban,-ben Fuss ablak.
- Indítsa újra a számítógépet.
- Újraindítás után végezzen alapos beolvasást, vagy menjen a " Fejlett"Opciók" Vizsgálati keverék"Vagy" Passz szám ’.
- nyomja meg F10 a teszt elindításához.
Ezek még mindig ideiglenes javítások.
3] Ellenőrizze a illesztőprogram frissítéseit
- nyomja meg Win + R és nyissa meg Fuss ablak. típus devmgmt.msc és nyomja meg az Enter billentyűt. Elviszi a Eszközkezelő.
- Ellenőrizze az elavult illesztőprogramokat, és frissítse mindet.
- Frissítésekre, amelyek esetleg hiányoznak, ellenőrizze a Windows Update webhelyet.
Ez egyszerű volt.
4] A teljesítmény optimalizálása
- Kattintson a jobb gombbal a " Ez a PC'És válassza a' Fejlett'Beállításokat a bal oldali ablaktáblán.
- Alatt ' Fejlett'Lapon, menjen a' Teljesítmény", Majd a" Beállítások ’.
- Jelölje be ' Állítsa be a legjobb teljesítmény érdekében És kattintson a gombra rendben.
- Indítsa újra és ellenőrizze a probléma megoldását.
Ha ez az egyszerű megoldás nem működik, próbálkozzon a következő megoldással.
5] Letiltja az indításkor futó programokat
- Menj ' Feladatkezelő ’.
- Menj ' üzembe helyezés ’.
- Tiltsa le azokat az indítási programokat, amelyeknek alapértelmezés szerint nem kell futtatni.
6] Defrag merevlemez
- Menj ' Ez a PC"Vagy" A számítógépem ’.
- Kattintson jobb gombbal a rendszer merevlemezére (általában C: meghajtó).
- Menj ' Eszközök"Alatt" Tulajdonságok'És válassza a' optimalizálja ’.
- Válassza ki a meghajtót a defrag funkcióhoz, és válassza ki a " elemez ’.
Indítsa újra a számítógépet az új szétdarabolódás után.
7] ClearPage fájl leállításkor
Mostanra bonyolult - de ne aggódj. Az oldalfájl minden leállításakor törölhető:
- típus regedit a Keresés gombra a Rendszerleíróadatbázis-szerkesztő elindításához.
- Adja meg ezt az utat: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
- Módosítsa a ClearPageFileAtShutDown az '1' -re.
- Mentse a változtatásokat és indítsa újra az eszközt.
Ezt meg kell tennie.
9] A Superfetch letiltása
Ez a Windows szolgáltatás a teljesítmény minimalizálásával optimalizálja a teljesítményt. Ez lehetővé teszi a Windows számára a RAM használatát. Az élet a Superfetch kikapcsolása után nem megfelelő, de tegye meg, ha szükséges. Legalább próbálja meg ezt egyedül a probléma elkülönítéséhez:
- Keresés services.msc és menjen a Szolgáltatások menedzserhez.
- Keres ' SuperFetch'És kattintson jobb gombbal a " Tulajdonságok ’.
- Válassza a ' Állj meg ’.
- Is ' Kikapcsolja'A szolgáltatás a legördülő menüből.
- 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ödik.
10] Ellenőrizze a rosszindulatú programokat
A rosszindulatú programok beolvasásához és kiküszöböléséhez használja a harmadik féltől származó víruskereső programot vagy a Windows 10 házon belüli Windows Defender programot. Győződjön meg arról, hogy a víruskereső frissítve támogatja az operációs rendszert, nehogy a memória szivárgásának oka legyen.
Minden megoldás, amelyre szükséged lehet a memória szivárgás megtalálásához vagy megelőzéséhez, itt van. Az MSDN-ről és a Microsoftról többet olvashat a memória-szivárgásokról.
Kapcsolódó hozzászólások:
- Fix Windows hibák vagy kék képernyő a halál
- Miért kevesebb RAM jelenik meg a Windows alatt, mint telepítve?
- A Windows 10 indítása, futtatása, leállítás gyorsabb
- A fizikai memória korlátai a Windows 10/8/7 ütközéses adatbázishoz
- Memóriacsomagolás a Windows 10 rendszerben