Spomin

Kako najti in odpraviti puščanje pomnilnika v sistemu Windows 10

Kako najti in odpraviti puščanje pomnilnika v sistemu Windows 10

A Puščanje spomina je napačna namestitev virov v računalniškem programu zaradi napačne dodelitve pomnilnika. To se zgodi, ko lokacija RAM-a, ki ni v uporabi, ostane neobjavljena. Puščanja pomnilnika ne gre zamenjevati z uhajanjem prostora, kar se nanaša na program, ki uporablja več RAM-a, kot je potrebno. Do uhajanja pomnilnika v sistemu Windows 10/8/7 naj bi prišlo, ko pomnilnik preprosto ni dostopen, čeprav ni v uporabi.

Puščanje pomnilnika v operacijskem sistemu Windows 10

Preden začnete, morate vedeti, da je uhajanje pomnilnika težava s programsko opremo za odpravljanje napak - na primer v Javi, JavaScript, C / C ++, Windows itd. Fizična zamenjava RAM-a ali trdega diska ni potrebna.

Zakaj je slabo

Očitno je, da je uhajanje spomina slabo, ker gre za napako in napako v sistemu. Ugotovimo pa, kako natančno vpliva na sistem:

  1. Ker se pomnilnik ne sprosti, tudi ko ni v uporabi, povzroči zmanjšanje pomnilnika.
  2. Izčrpavanje pomnilnika povzroči staranje programske opreme.
  3. Zmanjšanje razpoložljivega pomnilnika vodi do povečanega odzivnega časa in slabega delovanja sistema.
  4. Nepreverjeno puščanje pomnilnika lahko sčasoma povzroči zrušitev aplikacije.

Če želite prepoznati uhajanje pomnilnika, mora imeti programer dostop do izvorne kode programa.

Ugotavljanje puščanja

Da bi rešili težavo, jo moramo najprej prepoznati. Osnovni koraki za iskanje puščanja pomnilnika so:

  1. Potrditev: Ugotavljanje, ali je prišlo do puščanja.
  2. Iskanje uhajanja pomnilnika v načinu jedra: Iskanje puščanja, ki ga povzroči komponenta gonilnika v načinu jedra.
  3. Iskanje uhajanja pomnilnika v uporabniškem načinu: Odkrivanje puščanja, ki ga povzroči gonilnik ali aplikacija v uporabniškem načinu.

Dodelitev pomnilnika

Obstajajo različni načini, v katerih aplikacije dodeljujejo RAM. Če po uporabi prostora ne sprostite, pride do puščanja pomnilnika ne glede na način dodelitve. Nekateri pogosti vzorci dodeljevanja so:

  1. Funkcija HealAlloc za dodeljevanje pomnilnika kopice. Izvedbeni ekvivalenti C / C ++ so malloc in novi.
  2. Funkcija VirtualAlloc za neposredno dodelitev iz OS.
  3. Kernel32 API-ji za shranjevanje pomnilnika jedra za aplikacijo. Primer, CreateFile, CreateThread.
  4. API-ji User32 in API-ji Gdi32.

Preprečevanje uhajanja pomnilnika

Vsi vemo, da je preventiva boljša od zdravljenja, zato je nekaj načinov, kako preprečiti uhajanje spomina.

Spremljanje navad

Paziti morate na neobičajno uporabo RAM-a s strani posameznih programov in aplikacij. S pritiskom na lahko odprete upravitelja opravil sistema Windows CTRL + SHIFT + ESC in dodajte stolpce, kot so Ročaji, Uporabniški predmeti, Predmeti GDI itd.

To vam bo pomagalo enostavno spremljati porabo virov.

Preberite: Katere so vrste pomnilnika v računalniku?

Microsoftova orodja za diagnosticiranje puščanja pomnilnika

Različna orodja diagnosticirajo uhajanje pomnilnika za različne načine dodeljevanja:

  1. Program za preverjanje diagnosticira puščanje kopice.
  2. UMDH (komponenta orodij za odpravljanje napak v sistemu Windows) diagnosticira puščanje za posamezne procese s spremljanjem dodeljevanja kopice pomnilnika.
  3. Trace Capture za temeljito analizo uporabe RAM-a.
  4. Tudi Xperf sledi vzorcem dodeljevanja kopice.
  5. Kup odpravljanja napak CRT ne samo sledi dodelitvam kopice, ampak tudi omogoča kodiranje, da zmanjša puščanje.
  6. JavaScript Memory Leak Detector odpravlja pomanjkljivosti pomnilnika v kodah.

Nasveti za uporabo

  1. Uporabi jedro ROČAJs in drugimi pametnimi kazalci za vire Win32 in dodelitve kopice.
  2. Pridobite razrede za samodejno upravljanje virov za dodelitve jedra iz knjižnice ATL. Standard C ++ ima auto_ptr za dodelitve kopice.
  3. Kapsulirajte kazalce vmesnika COM v "pametne kazalce" s pomočjo _com_ptr_t ali _bstr_t ali _variant_t.
  4. Spremljajte .NET koda za nenormalno uporabo pomnilnika.
  5. Izogibajte se več izhodnim poti za funkcije, da se dodelitve sprostijo iz spremenljivk v večini blokov do konca funkcije.
  6. Uporabite izvorne izjeme šele po sprostitvi vseh dodeljevanj v bloku _finally. Zavijte vse kupčke in obdelajte dodelitve v pametne kazalce, da uporabite izjeme C ++.
  7. Vedno pokličite PropVariantClear funkcijo, preden ponovno inicializirate ali zavržete objekt PROPVARIANT.

Odpravljanje težav s puščanjem pomnilnika v sistemu Windows

Tako kot različni načini za preprečevanje uhajanja pomnilnika tudi tu obstajajo različni načini za zaustavitev uhajanja pomnilnika. Preden pa začnete, ne pozabite najprej ustvariti obnovitvene točke sistema.

1] Zaprite procese in znova zaženite.

Če opazite, da nepotreben postopek zajema preveč RAM-a, lahko postopek končate v upravitelju opravil. Napravo boste morali znova zagnati, da bo sproščeni prostor na voljo za uporabo v drugih procesih. Brez ponovnega zagona težave z uhajanjem pomnilnika ne bodo rešene. Poseben postopek, ki povzroča napake pri upočasnitvi računalnika, je Runtime Broker. Poskusite, če onemogočite samo to.

2] Orodja za diagnostiko pomnilnika

Za dostop do vgrajenega diagnostičnega orodja Memory for Windows:

  1. Shranite vse svoje pomembno delo.
  2. Pritisnite Win + R odpreti Teči okno.
  3. Vnesite ukaz mdsched.exe v Teči okno.
  4. Znova zaženite računalnik.
  5. Po ponovnem zagonu izvedite osnovno skeniranje ali pojdite na 'Napredno'možnosti, kot'Preizkusna mešanica"ali"Število podaj".
  6. Pritisnite F10 za začetek testa.

To so še vedno začasni popravki.

3] Preverite, ali so na voljo posodobitve za gonilnike

Zastareli gonilniki povzročajo puščanje pomnilnika. Naj bodo vsi gonilniki posodobljeni:

  1. Pritisnite Win + R in odprite Teči okno. Tip devmgmt.msc in pritisnite Enter. Odpeljal vas bo do Upravitelj naprav.
  2. Preverite zastarele gonilnike in jih vse posodobite.
  3. Za posodobitve, ki ste jih morda zamudili, preverite v storitvi Windows Update.

To je bilo preprosto.

4] Optimizirajte delovanje

Če prilagodite sistem Windows glede na zmogljivost, boste lahko upravljali vse, vključno z razporejanjem procesorjev in uporabo pomnilnika, da preprečite uhajanje pomnilnika. Sledite tem korakom:

  1. Z desno miškino tipko kliknite 'Ta računalnik'in izberite'Naprednov levem podoknu.
  2. Pod 'Napredno'zavihek, pojdi na'Izvedba', čemur sledi'Nastavitve".
  3. PreveriPrilagodite za najboljše delovanjein kliknite v redu.
  4. Znova zaženite in preverite, ali je težava odpravljena.

Če ta preprosta rešitev ni delovala, poskusite z naslednjo.

5] Onemogočite programe, ki se izvajajo ob zagonu

Onemogočanje težavnih programov je edini način, da se rešite težave s puščanjem pomnilnika. Pojdite v upravitelj opravil in onemogočite program za odpravljanje težav. Če ne veste, kateri programi povzročajo težave, naredite to:

  1. Pojdi do 'Upravitelj opravil".
  2. Pojdi do 'Začeti".
  3. Onemogočite zagonske programe, ki jih privzeto ni treba zagnati.

6] Odstrani trdi disk

Čeprav Windows 10 to stori samodejno, boste morda morali občasno defragmentirati trde diske, da optimizirate delovanje:

  1. Pojdi do 'Ta računalnik"ali"Moj računalnik".
  2. Z desno miškino tipko kliknite sistemski trdi disk (običajno pogon C:).
  3. Pojdi do 'Orodja' Spodaj 'Lastnosti'in izberite'Optimizirajte".
  4. Izberite pogon za defragmentiranje in izberite 'Analizirajte".

Po novi fragmentaciji znova zaženite računalnik.

7] Datoteka ClearPage ob zaustavitvi

Zdaj postaja zapleteno - vendar ne skrbite. Tukaj je opisano, kako ob vsaki zaustavitvi počistiti datoteko strani:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management

To bi moralo storiti. Ne pozabite, da bo postopek zaustavitve trajal nekaj več časa.

9] Onemogoči Superfetch

Ta storitev Windows optimizira delovanje tako, da zmanjša čas zagona. Windowsu omogoča upravljanje uporabe RAM-a. Življenje po onemogočanju Superfetcha ni priročno, vendar to storite, če morate. Vsaj poskusite samo s tem, da izolirate težavo:

  1. Iskanje storitve.msc in pojdite na Services Manager.
  2. Iskati 'Superfetch"in z desno miškino tipko kliknite, da odprete"Lastnosti".
  3. Izberite 'Nehaj".
  4. Tudi "Onemogoči'storitev iz spustnega menija.
  5. Znova zaženite računalnik in preverite, ali se je zmogljivost izboljšala.

Omogočite Superfetch, če ta ni deloval.

10] Preverite, ali je zlonamerna programska oprema

Za optično branje in odstranjevanje zlonamerne programske opreme uporabite neodvisno protivirusno programsko opremo ali lastni sistem Windows Defender sistema Windows 10. Prepričajte se, da je protivirusni program posodobljen tako, da podpira vaš operacijski sistem, tako da na koncu ne postane razlog za uhajanje pomnilnika.

Vsaka rešitev, ki jo boste kdaj potrebovali za iskanje ali preprečevanje uhajanja spomina, je prav tukaj. Več o puščanju pomnilnika lahko preberete v MSDN in Microsoftu.

S temi brezplačnimi orodji dodajte gibe miške v sistem Windows 10
V zadnjih letih so se računalniki in operacijski sistemi močno razvili. Včasih so morali uporabniki uporabljati ukaze za krmarjenje po upraviteljih da...
Nadzirajte in upravljajte gibanje miške med več monitorji v sistemu Windows 10
Upravitelj miške z dvojnim zaslonom vam omogoča nadzor in konfiguriranje gibanja miške med več monitorji, tako da upočasni gibanje blizu meje. Windows...
WinMouse vam omogoča prilagajanje in izboljšanje premikanja kazalca miške v računalniku z operacijskim sistemom Windows
Če želite izboljšati privzete funkcije kazalca miške, uporabite brezplačno programsko opremo WinMouse. Dodaja več funkcij, s pomočjo katerih boste kar...