Pronađite i popravite curenje memorije u sustavu Windows 11/10
Leak memorije(Memory Leak) je pogrešno postavljanje resursa u računalni program zbog pogrešne dodjele memorije. To se događa kada RAM lokacija koja se ne koristi ostane neobjavljena. Curenje memorije ne smije se miješati s curenjem prostora, što se odnosi na program koji koristi više RAM-a(RAM) nego što je potrebno. Do curenja memorije na Windows 11/10/8/7 se kaže da se dogodilo kada memorija jednostavno nije dostupna unatoč tome što se ne koristi.
Curenje memorije u sustavu Windows 11/10
Prije nego počnete, trebali biste znati da je curenje memorije softverski problem za otklanjanje pogrešaka – na primjer u (Memory)Javi(Java) , JavaScriptu(JavaScript) , C/C++, Windowsu(Windows) itd. Fizička zamjena RAM-a(RAM) ili tvrdog diska nije potrebna.
Zašto je loše
Očito je da je curenje memorije loše jer je to bug, nedostatak u sustavu. No, doznajmo kako to točno utječe na sustav:
- Budući da se memorija ne oslobađa čak ni kada se ne koristi, to rezultira iscrpljivanjem memorije.
- Iscrpljenost memorije dovodi do starenja softvera.
- Smanjena raspoloživa memorija dovodi do povećanog vremena odziva i loših performansi sustava.
- Neprovjereno curenje memorije može na kraju dovesti do pada aplikacije.
Kako bi identificirao curenje memorije, programer mora imati pristup izvornom kodu programa.
Lociranje curenja
Kako bismo riješili problem, prvo ga moramo identificirati. Osnovni koraci za lociranje curenja memorije su:
- Afirmacija(Affirmation) : Utvrđivanje je li došlo do curenja.
- Pronalaženje propuštanja memorije u načinu rada jezgre(Finding Kernel-mode memory leak) : Lociranje curenja uzrokovanog komponentom upravljačkog programa u načinu rada jezgre.
- Pronalaženje curenja memorije korisničkog načina rada(Finding User-mode memory leak) : lociranje curenja uzrokovanog upravljačkim programom ili aplikacijom korisničkog načina rada.
Dodjela memorije
Postoje različiti načini u kojima aplikacije dodjeljuju RAM . Ako se prostor ne oslobodi nakon upotrebe, do curenja memorije doći će bez obzira na način dodjele. Neki uobičajeni obrasci dodjele su:
- HealAlloc funkcija za dodjelu memorije hrpe. C/C++ runtime ekvivalenti su malloc i new.
- VirtualAlloc funkcija za izravnu dodjelu iz OS-a.
- Kernel32 API-ji(Kernel32 APIs) za držanje memorije kernela za aplikaciju. Primjer(Example) , CreateFile , CreateThread .
- User32 API-ji i Gdi32 API-ji.
Spriječite curenje memorije u sustavu Windows
Svi znamo da je prevencija bolja od liječenja pa evo nekoliko načina da spriječite curenje memorije.
Praćenje navika
Morate paziti na nenormalnu upotrebu RAM -a od strane pojedinih programa i aplikacija. Možete otići u Windows Task Manager pritiskom na CTRL+SHIFT+ESC i dodati stupce poput Handles , User Objects , GDI Objects , itd.
To će vam pomoći da jednostavno pratite korištenje resursa.
Pročitajte(Read) : Koje su vrste memorije u računalu?(What are the Types of Memory in a computer?)
Microsoftovi(Microsoft) alati za dijagnosticiranje curenja memorije
Različiti alati dijagnosticiraju curenje memorije za različite načine dodjele:
- Application Verifier dijagnosticira curenje hrpe.
- UMDH (komponenta Windows alata za otklanjanje pogrešaka(Windows Debugging Tools) ) dijagnosticira curenje za pojedinačne procese praćenjem raspodjele memorije hrpe.
- Trace Capture za temeljitu analizu korištenja RAM -a .
- Xperf također prati uzorke dodjele hrpe.
- CRT Debug Heap ne samo da prati raspodjelu hrpe, već također omogućuje prakse kodiranja za smanjenje curenja.
- JavaScript Detektor propuštanja(JavaScript Memory Leak Detector) memorije otklanja greške u propuštanju memorije u kodovima.
Savjeti za korištenje
- Koristite kernel HANDLE i druge pametne pokazivače za Win32 resurse i dodjelu hrpe.
- Nabavite(Get) klase za automatsko upravljanje resursima za dodjelu kernela iz ATL biblioteke. C++ standard ima auto_ptr za dodjelu hrpe.
- Inkapsulirajte pokazivače COM(Encapsulate COM) sučelja unutar "pametnih pokazivača" uz pomoć _com_ptr_t ili _bstr_t ili _variant_t .
- Pratite (Monitor).NET kod radi nenormalne upotrebe memorije.
- Izbjegavajte(Avoid) više izlaznih putova za funkcije kako biste omogućili oslobađanje alokacija od varijabli u većini blokova do kraja funkcije.
- Upotrijebite(Use) izvorne iznimke samo nakon oslobađanja svih dodjela u bloku _finally . Zamotajte(Wrap) sve alokacije hrpe i ručke u pametne pokazivače kako biste koristili C++ iznimke.
- Uvijek pozovite funkciju PropVariantClear prije ponovne inicijalizacije ili odbacivanja PROPVARIANT objekta.
Rješavanje problema(Troubleshoot) s curenjem memorije u sustavu Windows(Windows)
Baš kao i različiti načini za sprječavanje curenja memorije, postoje različiti načini za zaustavljanje curenja memorije. Ali prije nego što počnete, ne zaboravite prvo stvoriti točku vraćanja sustava .
1] Zatvorite procese i ponovno pokrenite.
Ako vidite da nepotreban proces zauzima previše RAM-a(RAM) , možete ga prekinuti u Upravitelju zadataka(Task Manager) . Morat ćete ponovno pokrenuti uređaj kako bi oslobođeni prostor bio dostupan za korištenje drugim procesima. Bez ponovnog pokretanja(Restart) problem curenja memorije neće biti riješen. Jedan poseban proces koji sadrži greške za usporavanje računala je Runtime Broker . Pokušajte ako samo to onemogućavanje radi.
2] Alati za dijagnostiku memorije
Za pristup ugrađenom alatu za dijagnostiku memorije(Memory Diagnostic Tool) za Windows:
- Sačuvajte sav vaš važan posao.
- Pritisnite Win + R da otvorite prozor Run .
- Upišite naredbu mdsched.exe u prozoru Pokreni(Run) .
- Ponovno pokrenite računalo.
- Nakon ponovnog pokretanja, izvršite osnovno skeniranje ili idite na opcije ' Napredne(Advanced) ' kao što su ' Test mix ' ili ' Pros count(Pass count) '.
- Pritisnite F10 za početak testa.
Ovo su još uvijek privremeni popravci.
3] Provjerite ima li ažuriranja upravljačkih programa
Zastarjeli upravljački programi uzrokuju curenje memorije. Držite sve upravljačke programe ažuriranim :
- Pritisnite Win + R i otvorite prozor Run . Upišite devmgmt.msc i pritisnite Enter . Odvest će vas do Upravitelja uređaja(Device Manager) .
- Provjerite(Check) ima li zastarjelih upravljačkih programa i ažurirajte ih sve.
- Za ažuriranja koja ste možda propustili provjerite u Windows Update .
Ovo je bilo jednostavno.
4] Optimizirajte performanse
Prilagodba sustava Windows za performanse upravljat će svime, uključujući zakazivanje procesora i korištenje memorije kako bi se zaustavilo curenje memorije. Prati ove korake:
- Desnom tipkom miša kliknite ' Ovo računalo(This PC) ' i odaberite ' Napredne(Advanced) postavke' na lijevom oknu.
- Na kartici ' Napredno(Advanced) ' idite na ' Performanse(Performance) ', a zatim ' Postavke(Settings) '.
- Označite " Prilagodi za najbolju izvedbu(Adjust for best performance) " i kliknite U redu(OK) .
- Ponovo pokrenite(Restart) i provjerite je li problem riješen.
Ako ovo jednostavno rješenje nije uspjelo, pokušajte sa sljedećim rješenjem.
5] Onemogućite programe(Programs) koji se pokreću pri pokretanju(Startup)
Onemogućavanje problematičnih programa jedini je način da se riješite problema s curenjem memorije. Idite na Upravitelj zadataka(Task Manager) i onemogućite program koji stvara probleme. Ako ne znate koji programi stvaraju probleme, učinite ovo:
- Idite na " Upravitelj zadataka(Task Manager) ".
- Idite na " Pokretanje(Startup) ".
- Onemogućite programe za pokretanje(Disable the startup programs) koje ne morate pokretati prema zadanim postavkama.
6] Defragirajte tvrdi disk
Iako Windows 10 to radi automatski umjesto vas, možda ćete morati povremeno defragmentirati tvrde diskove kako biste optimizirali performanse:
- Idite na ' Ovo računalo(This PC) ' ili ' Moje računalo(My Computer) '.
- Desnom tipkom miša kliknite(Right-Click) tvrdi disk sustava (obično C: pogon).
- Idite na " Alati(Tools) " pod " Svojstva(Properties) " i odaberite " Optimiziraj(Optimize) ".
- Odaberite pogon za defragmentaciju i odaberite " Analiziraj(Analyze) ".
Ponovno pokrenite računalo nakon nove fragmentacije.
7] ClearPage File prilikom isključivanja
Sada postaje složeno – ali ne brinite. Evo kako izbrisati datoteku stranice pri svakom gašenju(clear the Page File at every shutdown) :
- Utipkajte regedit u Search za pokretanje uređivača registra(Registry Editor) .
- Unesite ovaj put:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
- Promijenite vrijednost ClearPageFileAtShutDown u '1'.( ClearPageFileAtShutDown to ‘1’.)
- Spremite promjene i ponovno pokrenite(Restart) uređaj.
Ovo bi to trebalo učiniti. Imajte na umu da će vaš proces isključivanja potrajati malo više vremena.
9] Onemogući Superfetch
Ova Windows usluga(Windows Service) optimizira performanse minimiziranjem vremena pokretanja. Omogućuje Windowsima(Windows) upravljanje korištenjem RAM -a . Život(Life) nakon onemogućavanja Superfetcha(Superfetch) nije prikladan, ali učinite to ako morate. Barem pokušajte ovo sami da izolirate problem:
- Pretražite services.msc i idite na Services Manager.
- Potražite " Superfetch " i kliknite ga desnom tipkom miša da biste otišli na " Svojstva(Properties) ".
- Odaberite " Zaustavi(Stop) ".
- Također " Onemogući(Disable) " uslugu s padajućeg izbornika.
- Ponovno pokrenite računalo i provjerite je li se izvedba poboljšala.
Omogućite Superfetch ako ovaj ne radi.
10] Provjerite ima li zlonamjernog softvera
Koristite antivirusni softver treće strane ili vlastiti Windows Defender za Windows 10 za skeniranje i uklanjanje zlonamjernog softvera. Provjerite(Make) je li antivirusni program ažuriran tako da podržava vaš OS kako ne bi na kraju postao razlogom za curenje memorije.
Ovdje je svako rješenje koje vam ikada zatreba da pronađete ili spriječite curenje memorije. Više o curenju memorije možete pročitati na MSDN -u i Microsoftu(Microsoft) .
Related posts
Kako otvoriti i pročitati datoteke Small Memory Dump (dmp) u sustavu Windows 11/10
Kako pokrenuti alat za dijagnostiku memorije sustava Windows u sustavu Windows 11/10
Kako povećati veličinu datoteke stranice ili virtualnu memoriju u sustavu Windows 11/10
Kako ručno stvoriti Crash Dump datoteku u sustavu Windows 11/10
Explorer.exe Velika upotreba memorije ili CPU-a u sustavu Windows 11/10
Popravite pogrešku aplikacije WerMgr.exe ili WerFault.exe u sustavu Windows 11/10
Popravite korištenje velike memorije Microsoft Edge u sustavu Windows 11/10
Kako dodati pouzdano mjesto u sustavu Windows 11/10
Kako onemogućiti opciju Find my Device u postavkama sustava Windows 11/10
HDMI uređaj za reprodukciju ne prikazuje se u sustavu Windows 11/10
Popravite pogrešku Crypt32.dll koja nije pronađena ili nedostaje u sustavu Windows 11/10
Popravite visoku upotrebu CPU-a, memorije ili diska u Chromeu u sustavu Windows 11/10
Kako koristiti alate ugrađene u Charmap i Eudcedit u sustavu Windows 11/10
Postavite Notepad++ kao zadani uređivač za .xml datoteke u sustavu Windows 11/10
CPU ne radi punom brzinom ili kapacitetom u sustavu Windows 11/10
Omogućite mrežne veze u modernom stanju čekanja u sustavu Windows 11/10
Postavke sinkronizacije ne rade ili su zasivljene u sustavu Windows 11/10
Kako otvoriti svojstva sustava na upravljačkoj ploči u sustavu Windows 11/10
Što je PLS datoteka? Kako stvoriti PLS datoteku u sustavu Windows 11/10?
Što je PPS datoteka? Kako pretvoriti PPS u PDF u sustavu Windows 11/10?