Skip to main content

Hva er en håndtakslekkasje?

En håndtakslekkasje er en type ressurslekkasje, en situasjon der en begrenset databehandlingsressurs som minne blir overdreven konsumert av en applikasjon.Håndtak lekkasjer oppstår når en applikasjon åpner et "håndtak", en spesiell type referanse til en systemressurs, og ikke klarer å lukke dette håndtaket når det ikke er nødvendig lenger.De har potensial til å redusere ytelsen, forårsake applikasjon eller systemulykker, og kan være et symptom på større feil eller slurvete koding i et program.Mange feilsøkingsverktøy er tilgjengelige for programmerere for å hjelpe dem med å bekjempe håndtakslekkasjer.

I dataprogrammering er et håndtak struktur som refererer til en systemressurs, for eksempel en minneblokk eller en fil på en disk.Håndtak gir et lag med abstraksjon mellom systemressurser og applikasjoner og administreres vanligvis av datamaskinens operativsystem gjennom en "håndtakstabell" som samsvarer med hvert håndtak med en ressurs.En programmerer kan bruke et håndtak for å referere til et vindu som deretter trekkes på skjermen av operativsystemet.

En veloppdragen applikasjon vil frigjøre håndtak som den ikke lenger krever, og frigjøre ressurser og sikre at operativsystemet ikke ender opp med å administrere en ressurs som ikke er i bruk.Programmeringsfeil, programvarefeil og inkompatibiliteter mellom programvare kan føre til at programmer holder på håndtakene de ikke lenger trenger.Når applikasjonen fortsetter å kjøre, kan den akkumulere et stort antall unødvendige håndtak.Dette er kjent som en håndtakslekkasje.

Håndtak lekkasjer, som andre typer ressurslekkasjer, kan føre til treg ytelse, systeminstabilitet eller i ekstreme tilfeller, en datamaskinulykke.Dette er fordi håndtak forbruker endelige ressurser som systemminne, og hvis en applikasjon genererer et overdreven antall håndtak uten å lukke dem, blir disse ressursene utmattet.Den nøyaktige terskelen som en håndtakslekkasje begynner å forårsake problemer, avhenger av datamaskinens operativsystem, mengden tilgjengelige minne og andre faktorer.En lekkasje der noen få dusin håndtak blir stående åpen vil sannsynligvis ikke bli lagt merke til av brukere, mens en håndtak lekkasje på ti tusen eller mer er et tegn på en alvorlig feil i applikasjonens kode.

Programmerere må være spesielt oppmerksom for å håndtere lekkasjer gitt potensialet til å forårsake problemer.Den mest grunnleggende metoden for å diagnostisere en håndtakslekkasje er å observere håndtakstallet, som er antall håndtak en prosess eller applikasjon for øyeblikket har åpent, ettersom applikasjonen kjører.Vinduene og reg;Oppgavesjef kan vise denne informasjonen, og tredjepartsverktøy for både Windows og Reg;og andre operativsystemer kan også være nyttige for å identifisere og spore opp lekkerhåndtak.