Curenje memorije može značajno uticati na performanse vašeg računara, ali verovatno niste obraćali mnogo pažnje na ovu pojavu. Ne pominje se često, ali bi trebalo da bude, jer se može pojaviti u bilo kom trenutku, bez obzira na to koliko je vaš računar brz i moćan.
Rijetko spominjanje curenja memorije rezultiralo je znatno manjim brojem korisnika koji tačno znaju o čemu se radi i kako da reaguju kada se dogodi.
U ovom tekstu pokušaćemo da objasnimo šta je curenje memorije, kako ga detektovati, koje su njegove posledice i šta učiniti kada se otkrije.
Šta je curenje memorije?
Radna memorija računara (OKVIR) privremeno pohranjuje informacije vezane za operativni sistem, programe i servise koji su aktivni na računaru. Ovdje se koristi RAM jer je brz (čak i brži od SSD-a) i praktičan za pohranjivanje podataka kojima se često pristupa.
Na primjer, aplikacije koriste radnu memoriju za pohranjivanje informacija koje se odnose na izvršavanje određenih operacija ili često korištenih podataka tako da ne moraju stalno ponavljati čitave procese u svom radu. Kada aplikacija prestane koristiti dodijeljenu memoriju, to je znak da je slobodna.
Međutim, ovdje se možda događa nešto drugo. Ako aplikacija nastavi biti aktivna bez povrata dodijeljene memorije, za svoj rad će trošiti sve više dostupne radne memorije, čiji se resursi sve više troše. Sve to posljedično dovodi do pada sistema.
Kako otkriti curenje memorije?
Kada vašem sistemu ponestane RAM-a, vjerovatno ćete dobiti neki oblik obavještenja ili upozorenja na ekranu. Često će se raditi o sljedećoj poruci:
“Vaš računar nema dovoljno memorije.“
Slično obaveštenje se dobija na svim poznatim operativnim sistemima, a kada ga primite, primetićete da je nivo performansi vašeg računara značajno opao, što potencijalno dovodi do situacije stalnih kvarova i pada sistema.
Najlakši način da provjerite da li vaš računar ima curenje memorije je da pogledate korištenje RAM-a. Ako primijetite da aplikacija ili određeni proces polako počinje koristiti sve više memorije, to je siguran znak da postoji problem s curenjem memorije.
Na primjer, web pretraživač Google Chrome obično koristi nešto veće memorijske resurse. U ovom slučaju, velika potrošnja memorije neće biti neuobičajena ako imate petnaest otvorenih kartica.
Suprotan primjer je ako aplikacija poput Spotifyja koristi istu količinu RAM-a kao Chrome koji ima petnaest otvorenih kartica. Ova situacija će definitivno ukazivati na problem s curenjem memorije.
Kako se provjerava curenje memorije na različitim operativnim sistemima?
Procedura za provjeru potrošnje memorije na Windowsima je sljedeća:
- Otvorite Task Manager.
- Na kartici “Procesi” sortirajte kolonu “Memorija” tako da najviše vrijednosti budu na vrhu.
- Procijenite da li aplikacije na vrhu ljestvice koriste odgovarajuću količinu memorije ili troše previše njenih resursa.
Isti postupak se provodi na Mac računarima na sljedeći način:
- Idite na Aplikacije > Uslužni programi i otvorite Monitor aktivnosti.
- Odaberite karticu “Memorija” na vrhu prozora.
- Sortirajte kolonu “Memorija” tako da najviše vrijednosti budu na vrhu.
- Provjerite postoje li aplikacije čija potrošnja memorije nije adekvatna.
Kod Linux računari različitih verzija”Monitor sistema“učinite ovu proceduru nešto drugačijom. Uopšteno govoreći, može se reći da na Linux računarima morate napraviti unos “sistemski monitor” u start meniju (što je ekvivalentno meniju Start u Windows-u) ili koristiti alat za pretragu i napraviti isti unos.
Jednom “Monitor sistema“otvori, sortiraj”Memorija” tab ili stupac na isti način na koji su najveće vrijednosti na vrhu i tada se određuje koje aplikacije ili procesi koriste mnogo više memorijskih resursa nego što bi trebalo.
Sa svim ovim procedurama, možete prekinuti aplikacije ili procese za koje ste utvrdili da koriste previše resursa radne memorije i kasnije ih ponovo otvoriti kako biste bili sigurni da to nije bila samo privremena greška.
Ako se ponovo otkrije da ista aplikacija ili program troši mnogo više resursa nego što bi trebalo, ispravan potez bi bio brisanje i uklanjanje iz sistema.
Posljedice curenja memorije
Posljedice curenja memorije zavise od toga kako koristite aplikacije i drugi softver na svom računaru.
Klijentske aplikacije za desktop i mobilne telefone
Kod klijentske aplikacije (na primjer servisi e-pošte) posljedice curenja memorije mogu biti vrlo ozbiljne jer se sama memorija vraća tek kada aplikacija prestane da radi.
Ovo uzrokuje nestabilnost sistema i primijetit ćete neke od sljedećih pojava:
- vaš sistem će se usporiti
- aplikacije na računaru će se naglo zatvoriti
- računar će imati pad sistema i greške.
Serverske aplikacije
Kod serverske aplikacije (oni čekaju na zahtjeve drugih aplikacija i odgovaraju na njih) ovo može biti još gori problem jer serveri imaju tendenciju da rade dugo vremena bez isključivanja.
Memorija koja je bila u upotrebi danima, sedmicama ili mjesecima i koja je u kvaru uzrokovat će pad performansi servera. Ovo će uzrokovati pojavu grešaka i rezultirati prekidom rada.
I u klijentskim i u serverskim aplikacijama, problem dugotrajnog curenja memorije otvara sistem napadima zlonamjernog softvera poznatim kao “napadi ubrizgavanjem koda“.
Kako spriječiti curenje memorije?
Kada je u pitanju kodiranje, mnogi programski jezici imaju funkcije koje pomažu programerima u automatskom upravljanju memorijom. Ovo su karakteristike koje se nazivaju “sakupljač smeća” i pomažu u oslobađanju memorije kada se ne koristi. Razumijevanje načina na koji ove funkcije funkcionišu je jedan od načina prevencije curenja memorije.
Druga metoda prevencije je pisanje koda koji eliminiše nepotrebno skladištenje memorije. Kod mora jasno naznačiti da je rad aplikacije sa memorijskim resursima završen i da njegova upotreba više nije potrebna.
Ovo su savjeti za napredne korisnike koji su upoznati sa kodiranjem. Redovni korisnici u situacijama curenja memorije treba da resetuju svoj operativni sistem i ova procedura će zaustaviti problem i potencijalno sprečiti da se ponovo pojavi i postane trajna greška.
Takođe treba obratiti pažnju na redovna ažuriranja sistema, bez obzira da li se radi o Windows, macOS ili Linux računaru. Curenje memorije će biti predstavljeno sistemu kao loš kod ili greška tokom preuzimanja i instaliranja novog ažuriranja, tako da problem treba automatski da se reši.
Kako drugačije popraviti curenje memorije pomoću ugrađenih Windows alata?
Windows korisnike će vjerovatno zanimati postoji li alatka koja bi se mogla koristiti za sprječavanje curenja memorije.
Ono što će vam trebati u tom slučaju je Windows Resource Monitor.
Ovaj alat pruža informacije o sistemu u stvarnom vremenu i može biti vrlo koristan, pa ga otvorite na sljedeći način:
- ukucajte “Resource Monitor” u traku za pretragu unutar menija Start
- otvorite “Resource Monitor” i odaberite karticu “Memory”.
- sortirajte karticu “Commit” da prikažete najveće vrijednosti i zaustavite takve aplikacije i procese.
Napisao: Ervin Mičetić
Post Šta je curenje memorije na računaru i kako do njega dolazi? prvi put se pojavio na PC CHIP-u.
pcchip.hr