Keresse meg és javítsa ki a memóriaszivárgásokat a Windows 10 rendszerben

A memóriaszivárgás az erőforrások helytelen elhelyezése a számítógépes programban a hibás memóriakiosztás miatt. Akkor történik, amikor a nem használt RAM-hely továbbra is kiadatlan marad. A memóriaszivárgás nem tévesztendő össze egy űrszivárgással, amely a szükségesnél több RAM-ot használó programra utal. Állítólag memóriaszivárgás történt a Windows 10/8/7 rendszeren, amikor a memória éppen nem érhető el annak ellenére, hogy nincs használatban.

Memóriaszivárgás a Windows 10 rendszerben

Mielőtt elkezdené, tudnia kell, hogy a memóriaszivárgás egy szoftverhiba, amelyet hibakeresni kell - például Java, JavaScript, C / C ++, Windows stb.

Memóriaszivárgás a Windows 10 rendszerben

Miért rossz

Nyilvánvaló, hogy a memóriaszivárgás azért rossz, mert hiba, hiba a rendszerben. De derítsük ki, hogy pontosan hogyan hat a rendszerre:

  1. Mivel a memória még akkor sem szabadul fel, amikor nem használják, memória kimerülését eredményezi.
  2. A memória kimerülése a szoftver elöregedését eredményezi.
  3. A rendelkezésre álló memória csökkenése növeli a válaszidőt és a rendszer gyenge teljesítményét.
  4. 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áférést kell biztosítania a program forráskódjához.

A szivárgás helyének meghatározása

A probléma megoldása érdekében először azt kell azonosítanunk. A memóriaszivárgás felkutatásának alapvető lépései:

  1. Megerősítés : annak megállapítása, hogy történt-e szivárgás.
  2. A rendszermag módú memóriaszivárgás megkeresése : A rendszermag módú illesztőprogram összetevője által okozott szivárgás felkutatása .
  3. Felhasználói módú memóriaszivárgás megkeresése : A felhasználói módú illesztőprogram vagy alkalmazás által okozott szivárgás felkutatása .

Memóriaallokáció

Különböző módok vannak, amelyekben az alkalmazások lefoglalják a RAM-ot. Ha a felhasználás után a hely nem szabadul fel, a memória szivárgása bekövetkezik, függetlenül a felosztás módjától. Néhány általános kiosztási minta:

  1. HealAlloc függvény a halom memória lefoglalásához. A C / C ++ futásidejű ekvivalensek malloc és újszerűek.
  2. VirtualAlloc függvény az operációs rendszer közvetlen kiosztásához.
  3. Kernel32 API-k az alkalmazás kernelmemóriájának tárolására. Példa: CreateFile, CreateThread.
  4. 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 íme néhány módszer a memória szivárgásának megakadályozására.

Monitoring szokások

Memóriaszivárgás a Windows 10 rendszerben

Figyelnie kell az egyes programok és alkalmazások rendellenes RAM-használatát. A Windows Feladatkezelőbe léphet a CTRL + SHIFT + ESC billentyűkombinációval, és hozzáadhatja az oszlopokat, például a fogantyúkat, a felhasználói objektumokat, a GDI-objektumokat stb.

Ez segít az erőforrások használatának egyszerű ellenőrzésében.

Microsoft eszközök a memóriaszivárgások diagnosztizálására

Különböző eszközök diagnosztizálják a memóriaszivárgásokat a különféle allokációs módok esetében:

  1. Az Application Verifier diagnosztizálja a halomszivárgásokat.
  2. Az UMDH (a Windows hibakeresési eszközök egyik összetevője) a halom memória-allokációk figyelemmel kísérésével diagnosztizálja az egyes folyamatok szivárgását.
  3. Trace Capture a RAM használatának alapos elemzéséhez.
  4. Az Xperf is követi a halomallokációs mintákat.
  5. A CRT Debug Heap nemcsak a halomallokációkat követi nyomon, hanem kódolási gyakorlatokat is lehetővé tesz a szivárgások minimalizálása érdekében.
  6. A JavaScript memóriaszivárgás-érzékelő hibakereséssel tárolja a memóriaszivárgásokat a kódokban.

Használati tippek

  1. Használja a rendszermag HANDLE-jeit és más intelligens mutatókat a Win32 erőforrásokhoz és a halomallokációkhoz.
  2. Az ATL könyvtárból szerezzen be osztályokat az automatikus erőforrás-kezeléshez a kernel-kiosztásokhoz. A C ++ szabvány rendelkezik auto_ptr paranccsal a halomallokációkhoz .
  3. A COM interfész mutatóit az „intelligens mutatókba ” foglalja be a _com_ptr_t vagy a _bstr_t vagy a _variant_t segítségével .
  4. Figyelje a .NET kódot a rendellenes memóriahasználatra.
  5. Kerülje el a függvények többszörös kilépési útvonalát, hogy a legtöbb blokkban a funkció végére a kiosztások szabaddá váljanak.
  6. A natív kivételeket csak azután használhatja, hogy felszabadította az összes allokációt a _finally blokkban. Csomagolja az összes halmot és kezelje az allokációkat intelligens mutatókba a C ++ kivételek használatához.
  7. Mindig hívja meg a PropVariantClear függvényt, mielőtt újratelepítené vagy elvetné egy PROPVARIANT objektumot.

A memóriaszivárgások hibaelhárítása a Windows rendszerben

A memóriaszivárgások megelőzésének különböző módjaihoz hasonlóan a memóriaszivárgások megállításának számos módja van. De mielőtt elkezdené, ne felejtsen el először létrehozni egy rendszer-visszaállítási pontot.

1] Zárja be a folyamatokat és indítsa újra.

Ha úgy látja, hogy egy felesleges folyamat túl sok RAM-ot foglal el, a folyamatot a Feladatkezelőben fejezheti be. Újra kell indítania az eszközt, hogy a felszabadított terület rendelkezésre álljon más folyamatok számára. Újraindítás nélkül a memóriaszivárgás nem oldódik meg. A Runtime Broker egy olyan folyamat, amely hibákat tartalmaz a számítógép lelassítására. Próbáld meg, hogy csak ennek letiltása működik-e.

2] Memória diagnosztikai eszközök

Windows memória diagnosztika

A Windows beépített memória-diagnosztikai eszközének elérése:

  1. Mentsen meg minden fontos munkát.
  2. A Futtatás ablak megnyitásához nyomja meg a Win + R billentyűkombinációt .
  3. Írja be az mdsched.exe parancsot a Futtatás ablakba.
  4. Indítsa újra a számítógépet.
  5. Újraindítás után hajtsa végre az alapolvasást, vagy válassza a „ Speciális ” opciókat, például a „ Tesztmix ” vagy a „ Pass count ” lehetőséget.
  6. A teszt elindításához nyomja meg az F10 billentyűt.

Ezek továbbra is ideiglenes javítások.

3] Ellenőrizze az illesztőprogram frissítéseit

Frissítse az illesztőprogramot

Az elavult illesztőprogramok memóriaszivárgást okoznak. Tartsa naprakészen az összes illesztőprogramot:

  1. Nyomja meg a Win + R gombot, és nyissa meg a Futtatás ablakot. Írja be a devmgmt.msc fájlt, és nyomja meg az Enter billentyűt. Ez eljut az Eszközkezelőhöz .
  2. Ellenőrizze az elavult illesztőprogramokat, és frissítse őket.
  3. Az esetlegesen lemaradt frissítéseket a Windows Update webhelyen találja.

Ez egyszerű volt.

4] Optimalizálja a teljesítményt

Állítsa be a legjobb teljesítmény érdekében

A Windows teljesítményének igazításával mindent kezelhet, beleértve a processzor ütemezését és a memóriahasználatot a memóriaszivárgások megakadályozására. Kovesd ezeket a lepeseket:

  1. Kattintson a jobb gombbal az „ Ez a számítógép ” elemre, és válassza a bal panelen az „ Speciális ” beállításokat.
  2. A „ Speciális ” lapon lépjen a „ Teljesítményelemre , majd a „ Beállításokelemre .
  3. Jelölje be a „ Beállítás a legjobb teljesítményért ” lehetőséget, és kattintson az OK gombra .
  4. Indítsa újra é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] Tiltsa le az indításkor futó programokat

Indítási programok

A problémás programok letiltása az egyetlen módja a memóriaszivárgás megszabadulásának. Nyissa meg a Feladatkezelőt, és tiltsa le a problémamegoldó programot. Ha nem tudja, mely programok okozzák a problémát, tegye ezt:

  1. Lépjen a „ Feladatkezelőoldalra .
  2. Lépjen az „ Indításoldalra .
  3. Tiltsa le azokat az indító programokat, amelyeket alapértelmezés szerint nem kell futtatnia.

6] Defrag merevlemez

Lemez töredezettségmentesítése

Bár a Windows 10 ezt automatikusan elvégzi az Ön számára, előfordulhat, hogy a teljesítmény optimalizálása érdekében időnként meg kell tennie a merevlemezek töredezettségmentesítését:

  1. Lépjen a „ This PC ” vagy a „ My Computeroldalra .
  2. Kattintson a jobb gombbal a rendszer merevlemezére (általában C: meghajtóra).
  3. Lépjen a „ Tulajdonságok ” menü „ Eszközökrészéhez , és válassza az „ Optimalizálás ” lehetőséget.
  4. Válassza ki a töredezettségmeghajtót, majd válassza az „ Elemzés ” 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 már egyre bonyolultabb - de ne aggódj. A következőképpen törölheti az Oldalfájlt minden leállításkor:

  • Írja be a regedit parancsot a Keresésben a Beállításszerkesztő elindításához.
  • Írja be ezt az utat:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
  • Módosítsa a ClearPageFileAtShutDown értékét '1' értékre .
  • Mentse a módosításokat, és indítsa újra 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 optimalizálja a teljesítményt azáltal, hogy minimalizálja a rendszerindítási időt. Ez lehetővé teszi a Windows számára a RAM használatának kezelését. A Superfetch letiltása utáni élet nem kényelmes, de tegye meg, ha szükséges. Legalább próbáld egyedül ezt a problémát elkülöníteni:

  1. Keresse meg a services.msc fájlt, és lépjen a Services Manager oldalra.
  2. Keresse meg a „ Superfetchelemet , és kattintson a jobb gombbal a „ Tulajdonságokmenüpont eléréséhez.
  3. Válassza a „ Stop ” lehetőséget.
  4. A legördülő menüből szintén „ tiltsa le ” a szolgáltatást.
  5. Indítsa újra a számítógépet, és ellenőrizze, hogy javult-e a teljesítmény.

Engedélyezze a Superfetch alkalmazást, 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 Defender-jét a rosszindulatú programok beolvasásához és megszüntetéséhez. Győződjön meg arról, hogy az antivírus frissítve van az operációs rendszer támogatásához, hogy végül ne váljon a memóriaszivárgás okává.

Minden megoldás, amire valaha szüksége lehet a memóriaszivárgások megtalálásához vagy megelőzéséhez, itt van. Tudjon meg többet az MSDN és a Microsoft memóriaszivárgásairól.

Memóriaszivárgás a Windows 10 rendszerben