Ured

Pronađite i popravite propuštanja memorije u sustavu Windows 10/8/7

Web Development - Computer Science for Business Leaders 2016

Web Development - Computer Science for Business Leaders 2016

Sadržaj:

Anonim

A Propuštanje memorije je pogrešan položaj resursa u računalnom programu zbog pogrešne raspodjele memorije. To se događa kada neovlaštena lokacija RAM-a nije u uporabi. Smanjenje memorije ne treba zbuniti sa propuštanjem prostora, što se odnosi na program koji koristi više RAM nego što je potrebno. Spoznaja na sustavu Windows 10/8/7 se kaže da je došlo kada memorija nije dostupna unatoč neaktivnosti.

Propuštanja memorije u sustavu Windows 10

Prije nego počnete, trebali biste znati da

Zašto je loše

Očito je da je memorija očigledna curenje je loše jer je bug, propust u sustavu. No, saznajmo kako to točno utječe na sustav:

  1. Budući da memorija nije oslobođena čak i kada nije u uporabi, to rezultira smanjenjem memorije.
  2. Iscrpljenost memorije rezultira starenjem softvera.
  3. Smanjena dostupna memorija dovodi do povećanog vremena odaziva i slabog rada sustava
  4. Neodgovarajuće propuštanje memorije može na kraju dovesti do pad sustava aplikacije.

Kako bi se identificirala curenje memorije, programer mora imati pristup izvornom kodu program.

Pronalaženje propuštanja

Da bismo riješili problem, moramo ga najprije utvrditi. Osnovni koraci za pronalaženje propuštanja memorije su:

  1. Potvrda : Određivanje je li došlo do propuštanja.
  2. Pronalaženje propuštanja memorije u načinu kernela : Pronalaženje propuštanja uzrokovana komponentom vozača u načinu kernela.
  3. Pronalaženje propuštanja memorije korisničkog načina : pronalaženje propuštanja uzrokovanih upravljačkim programom ili aplikacijom korisnika.

Dijeljenje memorije

Postoje različiti načini u kojima aplikacije dijele RAM. Ako se prostor ne oslobađa nakon uporabe, curenje memorije će se dogoditi bez obzira na način dodjele. Neki od zajedničkih obrazaca alokacije su:

  1. HealAlloc funkcija za raspodjelu memorije heap.
  2. VirtualAlloc funkcija za izravnu dodjelu OS-a.
  3. API-ji Kernel32 za držanje memorije kernela za aplikaciju.
  4. API-ji i Gdi32 API-ji

Sprječavanje istjecanja memorije

Svi znamo da je prevencija bolja od izlječenja pa evo nekoliko načina da spriječite curenje memorije.

Načini praćenja

Morate paziti na abnormalno korištenje RAM-a pomoću pojedinačnih programa i aplikacija. Možete pristupiti upravitelju zadataka sustava Windows pritiskom tipke CTRL + SHIFT + ESC i dodati stupce kao što su ručice, korisni objekti, GDI objekti itd.

To će vam pomoći da jednostavno pratite upotrebu resursa.

UMDH (komponenta alata za uklanjanje pogrešaka sustava Windows) dijagnosticira propuštanja pojedinih procesa praćenjem alokacija memorije heapa

Alati za dijagnosticiranje curenja memorije

  1. Razni alati dijagnosticiraju curenje memorije za različite načine dodjele:
  2. Trace Capture za temeljitu analizu korištenja RAM-a.
  3. Xperf također pronalazi uzorke raspodjele heap.
  4. CRT Debug Heap ne samo da prati zbirke gomila već i omogućuje kodiranje kako bi se minimizirale propuštanja.
  5. Upotrijebite kernel

HANDLE

  1. i ostale pametne pokazatelje za resurse Win32 i raspodjelu heapova. Dobijte klase za automatsko upravljanje resursima za izdvajanje kernela iz ATL knjižnica. ili
  2. _bstr_t ili _variant_t
  3. Encapsulirajte pokazivače COM sučelja unutar "pametnih pokazivača" pomoću _com_ptr_t. Pratite.NET kod za abnormalno korištenje memorije. Izbjegavajte višestruke izlazne putove za funkcije da dopusti izdvajanje od varijabli u većini blokova do kraja funkcije. Koristite samo izvornu iznimku nakon oslobađanja svih izdvajanja u kraju. Omotajte sve gomile i upravljajte raspodjelama u pametne pokazivače kako biste koristili iznimke od C +.
  4. Rješavanje problema curenja memorije u sustavu Windows
  5. Jednako kao i različiti načini za sprečavanje propuštanja memorije, postoje razni načini za zaustavljanje istjecanja memorije.
  6. Propušteni memorija1] Zatvorite procese i ponovo pokrenite.

Ako vidite da nepotrebni proces pokreće previše RAM-a, možete završiti postupak u Upravitelju zadataka. Morat ćete ponovo pokrenuti uređaj tako da oslobođeni prostor bude dostupan za druge procese. Bez ponovnog pokretanja problema s curenjem memorije neće se riješiti. Jedan poseban proces koji ima greške za usporavanje računala je Runtime Broker.

Za pristup ugrađenom alatu za dijagnostiku memorije za Windows:

Spremite sve važne radove

Pritisnite

Win + R

  1. U prozoru
  2. Pokreni upišite naredbu mdsched.exePonovo pokrenite računalo.
  3. Nakon što otvorite Run ponovo pokrenite računalo, pokrenite osnovno skeniranje ili idite na opcije Napredne "poput
  4. Test mix
  5. ili Pass count F10 za početak testiranja Ovo su još uvijek privremeni popravci. 3] Provjerite ažuriranja upravljačkog programa zastarjeli upravljački programi uzrokuju propuštanje memorije. Zadržite sve upravljačke programe:
  6. Pritisnite Win + R i otvorite prozor

Run

. Upišite

devmgmt.msc

  1. i pritisnite Enter. To će vas odvesti na Upravitelj uređaja . Provjerite ima li zastarjelih upravljačkih programa i ažurirati ih sve. Za ažuriranja možda ste propustili, provjerite Windows Update. Ovo je bilo jednostavno. 4] Optimiziranje performansi Podešavanje sustava Windows za performanse upravlja sve, uključujući raspoređivanje procesora i korištenje memorije kako bi se zaustavilo curenje memorije. Slijedite ove korake: Desnom tipkom miša kliknite
  2. Ovo računalo
  3. `i odaberite`

Napredne

`u lijevom oknu.

Pod

  1. NaprednoCheck ` Podesite za najbolju izvedbu ` i kliknite
  2. U redu . Ponovno pokreni i provjerite je li problem riješen. Ako ovo jednostavno rješenje nije uspjelo, pokušajte sljedeće rješenje. 5] Onemogući programi koji se pokreću pri pokretanju Onemogućavanje problema programa je jedini način da se riješite problema s curenjem memorije. Idite na Task Manager i onemogućite program za rješavanje problema. Ako ne znate koji programi stvaraju problem, učinite sljedeće: Idite na `
  3. Upravitelj zadataka `. Idite na ` Pokretanje `.
  4. Onemogućite programe za pokretanje koje ne trebate pokrenuti prema zadanim postavkama.

6] Defrag tvrdi disk

Iako vam Windows 10 to čini automatski, možda ćete morati povremeno odgonetnuti tvrde diskove kako biste optimizirali performanse:

  1. ili Moje računalo `.
  2. Desnom tipkom miša kliknite sistemski tvrdi disk (obično C: pogon). Idite na` >

`i odaberite`

Optimiziraj

  1. `. Odaberite pogon za odvajanje i odaberite` Analizirajte `. Ponovo pokrenite računalo nakon nove fragmentacije.
  2. 7] ClearPage datoteka na shutdown
  3. Sada postaje složen - ali ne brinite. Evo kako izbrisati datoteku stranice pri svakom isključivanju: Upišite regedit na Pretraživanje da pokrenete Urednik registra. Unesite ovaj put: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management Promijenite vrijednost
  4. 9> Onemogući Superfetch Ova usluga Windows optimizira performanse tako što smanjuje vrijeme podizanja sustava. ClearPageFileAtShutDown na `1`.

Spremite promjene i ponovo pokrenite uređaj.

Omogućuje Windowsu upravljanje korištenjem RAM-a. Život nakon onemogućavanja Superfetch nije prikladan, ali to učiniti ako je potrebno. Najmanje ovo pokušajte izolirati problem:

Traži

  1. services.msc i otiđite u Upravitelj Usluge. Potražite `
  2. Superfetch ` i desnom tipkom miša pritisnite
  3. Također odaberite ` Zaustavi
  4. `.

Također `

Onemogući

` uslugu na padajućem izborniku.

  1. Ponovo pokrenite računalo i provjerite je li poboljšana izvedba. Omogući Superfetch ako ovaj ne radi. 10] Provjerite zlonamjerni softver
  2. Upotrijebite protuvirusni softver treće strane ili Windows Defender za Windows 10 da biste skenirali i uklonili zlonamjerni softver. Provjerite je li antivirus ažuriran kako bi podržao vaš operativni sustav kako ne bi postao razlog za propuštanje memorije. Svako rješenje koje ste ikada trebali pronaći ili spriječiti curenje memorije je upravo ovdje. Možete pročitati više o curenju memorije na MSDN i Microsoftu.