Birou

Găsiți și remediați scurgeri de memorie în Windows 10/8/7

Cum punem parola unui stick usb.

Cum punem parola unui stick usb.

Cuprins:

Anonim

A Pierderi de memorie este o greșeală a resurselor într-un program de calculator din cauza alocării greșite a memoriei. Se întâmplă atunci când o locație de RAM care nu este utilizată rămâne nesoluționată. O scurgere de memorie nu trebuie confundată cu o scurgere de spațiu, care se referă la un program care utilizează mai multă RAM decât este necesar. O scurgere de memorie pe un sistem Windows 10/8/7 se spune că a avut loc atunci când memoria nu este accesibilă, în ciuda faptului că nu este utilizată.

Pierderi de memorie în Windows 10

Înainte de a începe, trebuie să știți că Memoria de scurgere este o problemă de software pentru depanare - de exemplu, în Java, JavaScript, C / C ++, Windows etc. Înlocuirea fizică a RAM sau a unui hard disk nu este necesară

De ce este rău

scurgeri este rău pentru că este un bug, un defect în sistem. Dar să aflăm exact cum afectează sistemul:

  1. Deoarece memoria nu este eliberată chiar și atunci când nu este utilizată, aceasta duce la epuizarea memoriei
  2. epuizarea memoriei duce la îmbătrânirea software-ului
  3. Reducerea memoriei disponibile conduce la un timp de răspuns crescut și la o performanță slabă a sistemului
  4. Scurgerile necontrolate ale memoriei pot duce eventual la prabusirea unei aplicații

Pentru a identifica o scurgere de memorie, un programator trebuie să aibă acces la codul sursă al

Localizarea scurgerii

Pentru a rezolva o problemă, trebuie să o identificăm mai întâi. Pasii de bază pentru a localiza o scurgere de memorie sunt: ​​

  1. Afirmație : Determinarea unei scurgeri.
  2. Găsirea unei scurgeri de memorie în modul kernel : Localizarea unei scurgeri cauzate de o componentă de driver a modului kernel.
  3. Găsirea unei scurgeri de memorie pentru modul de utilizare : Localizarea unei scurgeri cauzate de driverul sau aplicația în modul de utilizare

Alocarea memoriei

Există diferite moduri în care aplicațiile alocă RAM. Dacă spațiul nu este eliberat după utilizare, scurgerea memoriei va apărea indiferent de modul de alocare. Unele modele comune de alocare sunt: ​​

  1. Funcția HealAlloc pentru alocarea memoriei heap. Eficiențele C / C ++ runtime sunt malloc și noi.
  2. Funcția VirtualAlloc pentru alocarea directă de la OS.
  3. Kernel32 API-uri pentru a ține memoria kernel-ului pentru aplicație. Exemplu, CreateFile, CreateThread
  4. API-urile User 32 și API-urile Gdi32

Prevenirea pierderilor de memorie

Știm cu toții că prevenirea este mai bună decât vindecarea, așa că sunt câteva modalități de a preveni o scurgere de memorie. > Trebuie să țineți cont de utilizarea anormală a RAM de către programele și aplicațiile individuale. Puteți să accesați Windows Task Manager apăsând

CTRL + SHIFT + ESC

și adăugați coloanele precum Mânere, Obiecte utilizator, Obiecte GDI etc. Acest lucru vă va ajuta să monitorizați cu ușurință utilizarea resurselor. Instrumente Microsoft pentru a diagnostica scurgeri de memorie

Diverse unelte de diagnosticare a scurgerilor de memorie pentru diferite moduri de alocare:

Aplicația Verifier diagnostichează scurgeri de heap

UMDH (o componentă a instrumentelor de depanare Windows).

  1. Trace Capture pentru o analiză amănunțită a utilizării RAM
  2. Xperf urmărește prea multe modele de alocare a heapului.
  3. CRT Debug Heap nu numai că urmărește alocările de heap, dar și permite practicile de codificare pentru a minimiza scurgerile. Detectorul detectează scurgeri de memorie în coduri
  4. Sfaturi de utilizare
  5. Utilizați kernel
  6. HANDLE

s și alte indicatoare inteligente pentru resursele Win32 și alocările de heap

  1. Obțineți clase pentru gestionarea automată a resurselor pentru alocările kernel-ului biblioteca ATL._com_ptr_t
  2. sau _bstr_t sau
  3. _variant_tMonitorizați codul.NET pentru utilizarea anormală a memoriei Evitați caile de ieșire multiple pentru funcții pentru a permite ca alocările să fie eliberate de variabilele din majoritatea blocurilor până la sfârșitul unei funcții. după eliberarea tuturor alocărilor în blocul _final. Înfășurați toate alocările de morman și mâner în indicii inteligenți pentru a utiliza excepțiile C ++. Apelați întotdeauna funcția
  4. PropVariantClear
  5. înainte de a reinitializa sau arunca un obiect PROPVARIANT.
  6. Depanarea pierderilor de memorie în Windows
  7. La fel ca diferitele metode de a preveni scurgeri de memorie, există diferite modalități de a opri scurgerea memoriei. 1] Închideți procesele și reporniți. Dacă vedeți că un proces inutil necesită prea multă memorie RAM, puteți termina procesul în Managerul de activități. Va trebui să reporniți dispozitivul astfel încât spațiul liber să fie disponibil pentru utilizare de către alte procese. Fără o problemă de reluare a problemei de scurgere a memoriei nu va fi rezolvată. Un proces special care are bug-uri pentru a încetini PC-ul este Runtime Broker. Încercați să dezactivați singură această operație

2] Instrumente de diagnosticare a memoriei

Pentru a accesa instrumentul de diagnosticare a memoriei pentru Windows:

Salvați toate lucrările importante

Apăsați

pentru a deschide fereastra

Run

  1. .
  2. Introduceți comanda mdsched.exe în fereastra Run reporniți, efectuați o scanare de bază sau mergeți la opțiunile `
  3. avansate ` cum ar fi ` amestec de test ` sau ` F9
  4. pentru a începe testul
  5. Acestea sunt încă rezolvări temporare 3] Verificați dacă actualizările driverului Driverele depășite provoacă scurgeri de memorie. Păstrați toate driverele actualizate: Apăsați Win + R și deschideți fereastra Run
  6. . Introduceți devmgmt.msc și apăsați Enter.

Pentru actualizări pe care le-ați pierdut, verificați Windows Update

Acest lucru a fost simplu.

  1. 4] Optimizați performanța Ajustarea Windows pentru performanță va gestiona totul, inclusiv programarea procesorului și utilizarea memoriei pentru a opri scurgeri de memorie. Urmați acești pași: Faceți clic dreapta pe ` Acest PC ` și selectați setările Advanced `din panoul din stânga
  2. . > `
  3. Verificați`

Reglați pentru cea mai bună performanță

`și faceți clic pe

OK

  1. Restartați și verificați dacă problema este rezolvată Dacă această soluție simplă nu a funcționat, încercați următoarea soluție 5 Dezactivează programele care rulează la pornire Dezactivarea programelor problematice este singura modalitate de a scăpa de problema de scurgere de memorie. Accesați Managerul de activități și dezactivați programul de probleme. Dacă nu știți ce programe creează problema, faceți acest lucru:
  2. Mergeți la " Manager de activități ". Dezactivați programele de pornire pe care nu este nevoie să le executați în mod implicit. 6 Defragmentați unitatea hard disk Deși Windows 10 face acest lucru în mod automat, poate fi necesar să defragați uneori hard-disk-urile pentru a optimiza performanța:
  3. Acest calculator sau My Computer `. Faceți clic dreapta pe hard diskul sistemului (de obicei C: drive). >

"

`și selectați`

Optimizați

  1. `. > Reporniți computerul după noua fragmentare. 7] Fișier ClearPage la închidere Este acum complexă - dar nu vă faceți griji. Iată cum să ștergeți fișierul de pagină la fiecare oprire:
  2. Introduceți această cale: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSessionManagementul memoriei Modificați valoarea
  3. regedit

ClearPageFileAtShutDown la "1"

  1. Salvați modificările și Reporniți dispozitivul Acest lucru ar trebui să faceți. 9 Dezactivează Superfetch Acest serviciu Windows optimizează performanța prin minimizarea timpului de încărcare. Permite Windows să gestioneze utilizarea RAM. Viața după dezactivarea programului Superfetch nu este convenabilă, dar o face dacă trebuie. Cel puțin încercați acest lucru pentru a izola problema: Căutare
  2. services.msc
  3. și accesați Managerul de servicii. Căutați " Superfetch la Proprietăți `. Selectați`
  4. Stop `. Reporniți PC-ul și verificați dacă performanța sa îmbunătățit.

Activați Superfetch dacă acesta nu a funcționat.

10] Verificați dacă există programe malware

Utilizați un software antivirus terț sau Windows Defender din Windows 10 pentru a scana și elimina programele malware. Asigurați-vă că antivirusul este actualizat pentru a vă susține sistemul de operare, astfel încât acesta să nu devină motivul pierderii de memorie.

  1. Orice soluție pe care ați putea avea nevoie să o găsiți sau să împiedicați scurgerea memoriei este chiar aici. Puteți citi mai multe despre scurgerile de memorie de pe MSDN și Microsoft.