Curenje memorije može značajno utjecati na pad izvedbe vašeg računala, no vjerojatno na ovu pojavu niste toliko obraćali pozornost. Nju se baš često ne spominje, no trebalo bi, jer se može pojaviti u bilo kojem trenutku, neovisno o tome koliko je brzo i moćno vaše računalo.
Rijetko spominjanje curenja memorije rezultiralo je s time da znatno manji broj korisnika zna o čemu se točno radi i kako reagirati kad se jednom dogodi.
U ovom tekstu ćemo pokušati objasniti što je curenje memorije, kako ga detektirati, koje su njegove posljedice i što učiniti kad se utvrdi.
Što je curenje memorije?
Radna memorija računala (RAM) privremeno pohranjuje informacije koje se odnose na operativni sustav, programe i servise koji su aktivni na računalu. Radna memorija se ovdje koristi jer je brza (brža čak i od SSD-a) i praktična za spremanje podataka kojima se često pristupa.
Na primjer, aplikacije koriste radnu memoriju kako bi pohranile informacije koje se odnose na izvođenje određenih operacija ili često korištene podatke kako u svom radu ne bi morale iznova ponavljati cjelokupne procese. Kad aplikacija prestane koristiti dodijeljenu memoriju, to je znak da je ona slobodna.
Međutim, može se nešto drugo ovdje dogoditi. Ako aplikacija i dalje nastavi biti aktivna bez da vraća dodijeljenu memoriju, za svoj će rad trošiti sve više dostupne radne memorije čiji se resursi sve više troše. Sve ovo posljedično vodi do pada sustava.
Kako detektirati curenje memorije?
Kada se u sustavu pojavi manjak radne memorije, vjerojatno ćete dobiti neki oblik obavijesti ili upozorenja na zaslonu. Često će se raditi o sljedećoj poruci:
“Your computer is low on memory.”
Slična obavijest dobiva se na svim poznatijim operativnim sustavima i jednom kad je dobijete primijetit ćete da je razina izvedbe vašeg računala značajno pala te potencijalno vodi do situacije stalnih kvarova i padova sustava.
Najlakši način za provjeru ako se na vašem računalu događa curenje memorije je pregled upotrebe RAM-a. Ako primijetite da aplikacija ili određeni proces polako počinju koristiti sve više i više memorije, to je siguran znak da postoji problem s curenjem memorije.
Na primjer, Google Chrome web preglednik inače koristi nešto veće resurse memorije. U ovom slučaju velika potrošnja memorije neće biti ništa neobično ako imate petnaest otvorenih tabova.
Suprotan je primjer ako aplikacija kao što je Spotify koristi istu količinu radne memorije kao Chrome koji je otvoren s petnaest tabova. Ovakva situacija definitivno će sugerirati problem s curenjem memorije.
Kako se provjerava curenje memorije na različitim operativnim sustavima?
Postupak za provjeru potrošnje memorije na Windowsima je sljedeći:
- Otvorite Task Manager.
- Kod „Processes“ taba napravite sortiranje stupca „Memory“ kako bi najviše vrijednosti bile na vrhu.
- Procijenite ako aplikacije na vrhu ljestvice koriste odgovarajuću količinu memorije ili se radi o potrošnji previše njenih resursa.
Isti postupak se na Mac računalima provodi na sljedeći način:
- Idite na Applications > Utilities i otvorite „Activity Monitor“.
- Odaberite „Memory“ tab na vrhu prozora.
- Sortirajte „Memory“ stupac na način da su najviše vrijednosti na vrhu.
- Provjerite ako postoje aplikacije čija potrošnja memorije nije odgovarajuća.
Kod Linux računala različite verzije „System Monitora“ čine ovaj postupak nešto drugačijim. Općenito se može reći da na Linux računalima morate napraviti „system monitor“ unos kod početnog izbornika (koji je ekvivalent Start izborniku na Windowsima) ili koristiti alat za pretragu pa napraviti isti unos.
Jednom kad se „System Monitor“ otvori, sortirajte „Memory“ tab ili stupac na isti način da su najviše vrijednosti na vrhu i tada se utvrđuje koje aplikacije ili procesi koriste mnogo više resursa memorije nego što bi trebali.
Kod svih ovih postupaka možete prekinuti aplikacije ili procese za koje ste utvrdili da koriste previše resursa radne memorije te naknadno ponovno otvoriti iste kako bi bili sigurni da se nije radilo samo o trenutnoj greški.
Pokaže li se da ista aplikacija ili program ponovno troše mnogo više resursa nego što bi trebali, ispravan potez bi bio da ih izbrišete i uklonite iz sustava.
Posljedice curenja memorije
Posljedice curenja memorije ovise o načinu upotrebe aplikacija i ostalih softvera na računalu.
Klijentske aplikacije (Client Applications) kod desktopa i mobilnih telefona
Kod klijentskih aplikacija (primjerice e-mail servisi) posljedice curenja memorije znaju biti jako ozbiljne pošto se sama memorija vraća tek kada aplikacija prestaje s radom.
Ovo izaziva nestabilnost sustava pa ćete primijetiti neke od sljedećih pojava:
- sustav će vam se usporavati
- aplikacije na računalu će se naglo zatvarati
- računalo će imati padove sustava i bugove.
Serverske aplikacije
Kod serverskih aplikacija (čekaju zahtjeve drugih aplikacija i odgovaraju na njih) ovo može biti još gori problem jer serveri obično rade tijekom dužih perioda bez gašenja.
Memorija koja se koristi tijekom više dana, tjedana ili mjeseci i neispravno radi uzrokovat će pad izvedbe servera. To će izazvati pojavu bugova i rezultirat će s prestankom rada.
I kod klijentskih i kod serverskih aplikacija dugoročni problem s curenjem memorije otvara sustav za malware napade poznate pod nazivom „code injection attacks“.
Kako prevenirati curenje memorije?
Kad govorimo o kodiranju, mnogi programski jezici imaju značajke koje pomažu developerima kod automatskog upravljanja memorijom. Radi se o značajkama pod nazivom „garbage collector“ i one pomažu u oslobađanju memorije kad ona nije u upotrebi. Razumijevanje kako ove značajke rade jedna je od metoda za prevenciju curenja memorije.
Druga metoda za prevenciju je pisanje koda s kojim se otklanja nepotrebno skladištenje memorije. Kod mora jasno naznačiti da je rad aplikacije s resursima memorije završen i da njena upotreba više nije nužna.
Ovo su savjeti za napredne korisnike upoznate s kodiranjem. Obični korisnici u situacijama curenja memorije trebali bi resetirati svoj operativni sustav i ovaj postupak će zaustaviti problem te potencijalno prevenirati njegovo ponovno pojavljivanje i pretvaranje u stalni bug.
Također bi trebali obratiti pozornost na redovito ažuriranje sustava, neovisno o tome radi li se o Windows, macOS ili Linux računalu. Curenje memorije će tijekom preuzimanja i instalacije novog ažuriranja sustavu biti predstavljeno kao loš kod ili bug pa bi se problem automatski trebao riješiti.
Kako još popraviti curenje memorije pomoću ugrađenih Windows alata?
Korisnike Windowsa vjerojatno će zanimati ako postoji alat s kojim bi se curenje memorije moglo prevenirati.
Ono što će vam u tom slučaju trebati je Windows Resource Monitor.
Ovaj alat pruža informacije o sustavu u stvarnom vremenu i može biti od velike koristi pa ga otvorite na sljedeći način:
- napravite unos „Resource Monitor“ u traku za pretraživanje unutar Start izbornika
- otvorite „Resource Monitor“ i odaberite „Memory“ tab
- sortirajte „Commit“ tab kako bi se pokazale najviše vrijednosti te zaustavite takve aplikacije i procese.
Piše: Ervin Mičetić
evo to se kod mene desava od oktobra 2023, nema sta nisam pokusao,reinstalacija sistema i drivera, provjeravao drivere, pratio preko sysinternals rammap programa, skenirao antivirusima testirao ram memoriju, ima curenje memorije i ne postoji trajno resenje, kao da su nesto promjenili sa apdejtima imam tri racunara na sva tri se to desava, na windows 10 nije toliko primjetno ali na 11 se zbog toga na kraju zaledi slika nema ni plavog ekrana ni nista kao da nece da koristi ram memoriju ali zato vise koristi virtuelnu (pagefile, swapfile), takodje primjecujem vecu aktivnost i potrosnju ssd-a, sve programe koji se pokrecu pri pokretanju sisterma pogasio, primjetio sam da u explorer.exe i dwm.exe raste memorija tokom duzeg rada racunara i ne oslobadja se jedino ako restartujem process ili restartujem racunar se vrati u normalu, kad stavim racunar na sleep pa ga probudim primjecujem da explorer zauzme vise rama i ne oslobadja dok ne restartujem explorer, takodje primjecujem povecanu aktivnost event viewera i vise evenata id 16384, 16389(software protection service),10016(DCOM), 131, 200, 201, 202(WMIS) itd., (sad da li su ti eventi nekako povezani sa curenjem memorije ne znam) koji se stalno spamuju u event vieweru, to se se dogadja od oktobra 2023 kod mene, kao da subnesto izmjenili sa tim apdejtima od tada