Što je curenje ručke?

Curenje ručke je vrsta curenja resursa, situacija u kojoj aplikacija prekomjerno troši konačan računalni resurs kao što je memorija. Do curenja ručke dolazi kada aplikacija otvori “handle”, posebnu vrstu reference na resurs sustava, i ne uspije zatvoriti tu ručku kada više nije potrebna. Oni imaju potencijal smanjiti performanse, uzrokovati pad aplikacija ili sustava i mogu biti simptom velikih bugova ili neurednog kodiranja u softverskom programu. Mnogi alati za rješavanje problema dostupni su programerima koji im pomažu u borbi protiv curenja.

U računalnom programiranju, ručka je struktura koja upućuje na resurse sustava, kao što je blok memorije ili datoteka na disku. Ručice pružaju sloj apstrakcije između resursa sustava i aplikacija i njima obično upravlja operacijski sustav računala putem “tablice rukovatelja” koja odgovara svakom ručku s resursom. Programer može koristiti ručku za upućivanje na prozor koji operacijski sustav zatim iscrtava na zaslonu.

Aplikacija s dobrim ponašanjem oslobodit će ručke koje više ne zahtijevaju, oslobađajući resurse i osiguravajući da operativni sustav na kraju ne upravlja resursom koji nije u upotrebi. Programske pogreške, programske greške i nekompatibilnosti između softvera mogu uzrokovati da programi drže ručke koje im više nisu potrebne. Kako se aplikacija nastavlja raditi, može se nakupiti veliki broj nepotrebnih ručki. To je poznato kao curenje ručke.

Rukovanje curenjem, kao i druge vrste curenja resursa, može dovesti do usporene izvedbe, nestabilnosti sustava ili, u ekstremnim slučajevima, do pada računala. To je zato što ručke troše ograničene resurse kao što je memorija sustava, a ako aplikacija generira prevelik broj ručki bez zatvaranja, ti se resursi iscrpljuju. Točan prag na kojem curenje ručke počinje uzrokovati probleme ovisi o operacijskom sustavu računala, količini dostupne memorije i drugim čimbenicima. Curenje u kojem je nekoliko desetaka ručki ostavljeno otvorenim korisnici vjerojatno neće primijetiti, dok je curenje ručke od deset tisuća i više znak ozbiljnog buga u kodu aplikacije.

Programeri moraju obratiti posebnu pozornost na rukovanje curenjima s obzirom na njihovu mogućnost da izazovu probleme. Najosnovnija metoda dijagnosticiranja curenja ručke je promatranje broja ručki, što je broj ručki koje proces ili aplikacija trenutno ima otvorene, dok se aplikacija izvodi. Windows® Task Manager može prikazati ove informacije, a uslužni programi trećih strana za Windows® i druge operacijske sustave također mogu biti korisni u prepoznavanju i praćenju ručica koje propuštaju.