Vad är en handtagsläcka?
En handtagsläcka är en typ av resursläckage, en situation där en begränsad databehandlingsresurs som minne konsumeras alltför mycket av en applikation. Handtagläckor uppstår när en applikation öppnar ett “handtag”, en speciell typ av referens till en systemresurs, och misslyckas med att stänga handtaget när det inte behövs längre. De har potential att minska prestanda, orsaka applikations- eller systemkrasch och kan vara ett symptom på större buggar eller slarvig kodning i ett program. Många felsökningsverktyg är tillgängliga för programmerare för att hjälpa dem att bekämpa läckage.
Vid datorprogrammering är ett handtag en struktur som refererar till en systemresurs, till exempel ett minnesblock eller en fil på en disk. Handtag ger ett lager av abstraktion mellan systemresurser och applikationer och hanteras vanligtvis av en dators operativsystem genom en "handtabell" som matchar varje handtag med en resurs. En programmerare kan använda ett handtag för att hänvisa till ett fönster som sedan dras på skärmen av operativsystemet.
En väluppfostrad applikation kommer att släppa handtag som den inte längre kräver, frigör resurser och säkerställer att operativsystemet inte slutar hantera en resurs som inte används. Programmeringsfel, programvarufel och inkompatibilitet mellan programvara kan göra att program håller fast vid handtag som de inte längre behöver. När applikationen fortsätter att köra kan den samla ett stort antal onödiga handtag. Detta är känt som ett handtagsläckage.
Hanteringsläckor, som andra typer av resursläckor, kan leda till långsam prestanda, systeminstabilitet eller i extrema fall en datorkrasch. Detta beror på att handtag konsumerar begränsade resurser som systemminne, och om en applikation genererar ett alltför stort antal handtag utan att stänga dem blir dessa resurser uttömda. Den exakta tröskeln vid vilken ett handtag läcker börjar orsaka problem beror på datorns operativsystem, mängden tillgängligt minne och andra faktorer. En läcka där några tiotal handtag lämnas öppen kommer antagligen inte att märkas av användare, medan ett handtagsläckage på tiotusen eller mer är ett tecken på ett allvarligt fel i programmets kod.
Programmerare måste vara särskilt uppmärksamma för att hantera läckor med tanke på deras potential att orsaka problem. Den mest grundläggande metoden för att diagnostisera ett handtagsläckage är att observera handtalsantalet, vilket är antalet handtag som en process eller applikation för närvarande har öppnat, när applikationen körs. Windows® Task Manager kan visa denna information, och tredjepartsverktyg för både Windows® och andra operativsystem kan också vara användbara för att identifiera och spåra läckande handtag.