Mälu

Kuidas leida ja parandada mälulekkeid Windows 10-s

Kuidas leida ja parandada mälulekkeid Windows 10-s

A Mäluleke on arvutiprogrammi ressursside vale paigutus vale mälu jaotamise tõttu. See juhtub siis, kui kasutamata RAM-i asukoht jääb avaldamata. Mäluleket ei tohi segi ajada ruumi lekkimisega, mis viitab programmile, mis kasutab rohkem RAM-i kui vaja. Väidetavalt on mälulekk Windows 10/8/7 süsteemis toimunud siis, kui mällu pole lihtsalt juurdepääs, hoolimata sellest, et seda pole.

Mälulekked Windows 10-s

Enne alustamist peaksite teadma, et mälulekk on tarkvara probleem, mida siluda - näiteks Java, JavaScript, C / C ++, Windows jne. RAM-i või kõvaketta füüsiline asendamine pole vajalik.

Miks see halb on

On ilmne, et mäluleke on halb, kuna see on viga, süsteemi viga. Kuid uurime, kuidas see süsteemi täpselt mõjutab:

  1. Kuna mälu ei vabane isegi siis, kui seda ei kasutata, põhjustab see mälu tühjenemist.
  2. Mälu ammendumine põhjustab tarkvara vananemist.
  3. Vähendatud vaba mälu suurendab süsteemi reageerimisaega ja halba jõudlust.
  4. Kontrollimata mälulekk võib lõpuks viia rakenduse krahhini.

Mälulekke tuvastamiseks peab programmeerijal olema juurdepääs programmi lähtekoodile.

Lekke asukoht

Probleemi lahendamiseks peame selle kõigepealt tuvastama. Peamised sammud mälulekke leidmiseks on järgmised:

  1. Kinnitus: Lekke tekkimise kindlakstegemine.
  2. Tuumarežiimis mälulekke leidmine: Tuumarežiimi draiverikomponendi põhjustatud lekke tuvastamine.
  3. Kasutajarežiimi mälulekke leidmine: Kasutajarežiimi draiveri või rakenduse põhjustatud lekke tuvastamine.

Mälu eraldamine

On erinevaid režiime, milles rakendused eraldavad RAM-i. Kui pärast kasutamist ruumi ei vabastata, toimub mäluleke olenemata jaotamisviisist. Mõned levinumad jaotamismustrid on:

  1. HealAlloc funktsioon kuhja mälu jaotamiseks. Käitusaja C / C ++ ekvivalendid on malloc ja uued.
  2. VirtualAlloc funktsioon otseseks jaotamiseks OS-ilt.
  3. Kernel32 API-d rakenduse tuumamälu hoidmiseks. Näide: CreateFile, CreateThread.
  4. User32 API-d ja Gdi32 API-d.

Mälulekete vältimine

Me kõik teame, et ennetamine on parem kui ravi, nii et siin on mõned võimalused mälulekke vältimiseks.

Harjumuste jälgimine

Peate jälgima üksikute programmide ja rakenduste RAM-i ebanormaalset kasutamist. Vajutades saate minna Windowsi tegumihaldurisse CTRL + SHIFT + ESC ja lisage veerud nagu käepidemed, kasutajaobjektid, GDI-objektid jne.

See aitab teil ressursside kasutamist hõlpsalt jälgida.

Lugege: Mis on arvuti mälu tüübid?

Microsofti tööriistad mälulekete diagnoosimiseks

Erinevad tööriistad diagnoosivad erinevate jaotamisrežiimide mälulekkeid:

  1. Application Verifier diagnoosib kuhja lekkeid.
  2. UMDH (Windowsi silumisvahendite komponent) diagnoosib üksikute protsesside lekkeid, jälgides kuhjaga mälumahtu.
  3. Trace Capture RAM-i põhjalikuks analüüsiks.
  4. Ka Xperf jälgib kuhja jaotamise mustreid.
  5. CRT Debug Heap mitte ainult ei jälgi kuhja jaotusi, vaid võimaldab lekete minimeerimiseks ka kodeerimispraktikat.
  6. JavaScripti mälulekkeandur silub koodilekkeid.

Kasutamisnõuanded

  1. Kasutage kernelit KÄEPIDEMEs ja muud nutikad näpunäited Win32 ressursside ja kuhja jaotuste jaoks.
  2. Hankige ATL-i teegist klassid tuuma jaotamise automaatseks ressursside haldamiseks. C ++ standardil on auto_ptr kuhjaeraldiste jaoks.
  3. Kombineerige COM-liidese näpunäited tarkade näpunäidete abil _com_ptr_t või _bstr_t või _variant_t.
  4. Jälgige .NET-kood ebahariliku mälukasutuse jaoks.
  5. Vältige funktsioonide mitut väljumisteed, et eraldised saaksid funktsiooni lõpuks enamikus plokkides muutujatest vabaneda.
  6. Kasutage kohalikke erandeid alles pärast kõigi eraldiste vabastamist plokis _finally. C ++ erandite kasutamiseks pakkige kõik kuhja ja käepidemete jaotused nutikateks osutiteks.
  7. Helistage alati PropVariantClear funktsiooni enne objekti PROPVARIANT uuesti initsialiseerimist või viskamist.

Mälulekete tõrkeotsing Windowsis

Nii nagu erinevad võimalused mälulekete vältimiseks, on ka mälulekete peatamiseks erinevad viisid. Kuid enne alustamist ärge unustage kõigepealt luua süsteemi taastepunkt.

1] Sulgege protsessid ja taaskäivitage.

Kui näete, et tarbetu protsess võtab liiga palju RAM-i, saate protsessi lõpetada tegumihalduris. Peate seadme taaskäivitama, et vabanenud ruum oleks teiste protsesside jaoks saadaval. Ilma taaskäivitamiseta mälulekke probleemi ei lahendata. Üks konkreetne protsess, millel on arvuti pidurdamiseks vead, on Runtime Broker. Proovige, kas ainuüksi selle keelamine töötab.

2] Mäludiagnostika tööriistad

Sisseehitatud Windowsi mäludiagnostika tööriista avamiseks toimige järgmiselt

  1. Salvestage kõik oma olulised tööd.
  2. Vajutage Win + R avamiseks Jookse aken.
  3. Sisestage käsk mdsched.exe aastal Jookse aken.
  4. Taaskäivitage arvuti.
  5. Pärast taaskäivitamist tehke põhiline skannimine või minge 'Täpsem'valikud nagu'Katsesegu"või"Passide arv".
  6. Vajutage F10 testi alustamiseks.

Need on endiselt ajutised parandused.

3] Kontrollige draiveri värskendusi

Vananenud draiverid põhjustavad mälulekkeid. Hoidke kõiki draivereid ajakohasena:

  1. Vajutage Win + R ja avage Jookse aken. Tüüp devmgmt.msc ja vajutage sisestusklahvi. See viib teid Seadmehaldus.
  2. Kontrollige vananenud draivereid ja värskendage neid kõiki.
  3. Värskenduste leidmiseks võite olla unustanud, kontrollige Windows Update'i.

See oli lihtne.

4] Optimeerige jõudlust

Windowsi jõudluse kohandamine haldab kõike, sealhulgas protsessori ajastamist ja mälukasutust, et peatada mälulekked. Järgige neid samme:

  1. Paremklõpsake nupul 'See arvuti"ja vali"Täpsem'seaded vasakul paanil.
  2. AllTäpsem'sakk, minge'Performance", millele järgneb"Seaded".
  3. Kontrollima 'Parima jõudluse saavutamiseks reguleerigeja klõpsake nuppu Okei.
  4. Taaskäivitage ja kontrollige, kas probleem on lahendatud.

Kui see lihtne lahendus ei töötanud, proovige järgmist lahendust.

5] Keelake Startup'is töötavad programmid

Tülikate programmide keelamine on ainus viis mälulekete probleemist vabanemiseks. Minge ülesannete halduri juurde ja keelake probleemide lahendamise programm. Kui te ei tea, millised programmid probleeme tekitavad, tehke järgmist

  1. Minema 'Task Manager".
  2. Minema 'Käivitamine".
  3. Keelake käivitusprogrammid, mida pole vaja vaikimisi käivitada.

6] Defrag kõvaketas

Kuigi Windows 10 teeb seda teie eest automaatselt, peate jõudluse optimeerimiseks aeg-ajalt kõvakettad defragmentima:

  1. Minema 'See arvuti"või"Minu arvuti".
  2. Paremklõpsake süsteemi kõvakettal (tavaliselt C: draiv).
  3. Minema 'Tööriistad"all"Atribuudid"ja vali"Optimeeri".
  4. Valige draiv defragmentimiseks ja valige 'Analüüsige".

Pärast uut killustamist taaskäivitage arvuti.

7] ClearPage'i fail väljalülitamisel

Nüüd muutub see keerukaks - aga ärge muretsege. Lehefaili kustutamine igal väljalülitamisel:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMäluhaldus

See peaks seda tegema. Ärge unustage, et teie väljalülitamine võtab veidi rohkem aega.

9] Keela Superfetch

See Windowsi teenus optimeerib jõudlust minimeerides alglaadimise aega. See võimaldab Windowsil hallata RAM-i kasutamist. Elu pärast Superfetchi keelamist pole mugav, kuid tehke seda, kui peate. Proovige probleemi eraldamiseks vähemalt seda üksi:

  1. Otsing teenused.msc ja minge teenushalduri juurde.
  2. Otsi 'Superfetch"ja paremklõpsake sellel liikumiseks"Atribuudid".
  3. Vali 'Lõpeta".
  4. Ka 'Keela'teenus rippmenüüst.
  5. Taaskäivitage arvuti ja kontrollige, kas jõudlus on paranenud.

Kui see ei töötanud, lubage Superfetch.

10] Kontrollige pahavara olemasolu

Pahavara skannimiseks ja kõrvaldamiseks kasutage kolmanda osapoole viirusetõrjetarkvara või Windows 10 firmasisest Windows Defenderit. Veenduge, et viirusetõrjet värskendatakse teie operatsioonisüsteemi toetama, et see ei muutuks lõpuks mälulekke põhjuseks.

Kõik lahendused, mida võib-olla vaja mälulekete leidmiseks või nende vältimiseks, on just siin. MSDN-i ja Microsofti mälulekete kohta saate lugeda lähemalt.

League of Legendsi installimine Ubuntu 14-le.04
Kui olete League of Legends fänn, siis on see teile võimalus proovida League of Legendsit. Pange tähele, et LOL-i toetab PlayOnLinux, kui olete Linuxi...
Installige uusim OpenRA strateegiamäng Ubuntu Linuxi
OpenRA on tasuta / tasuta reaalajas strateegiamängumootor, mis loob uuesti Westwoodi varased mängud nagu klassikaline Command & Conquer: Red Alert. Ja...
Installige Linuxile uusim Dolphin Emulator for Gamecube & Wii
Dolphini emulaator võimaldab teil mängida valitud Gamecube & Wii mänge Linuxi personaalarvutites (PC). Vabalt saadaval oleva ja avatud lähtekoodiga m...