Hva er Reference Counting?

January 24  by Eliza

Referansetelling er en dataprogrammering teknikk som brukes for å effektivisere minnehåndtering, slik at datamaskinen til å umiddelbart vite når det er "trygt" å slippe en bestemt verdi eller blokk med verdier fra minnet. Når du programmerer, er økonomi avgjørende, slik at programmer kan kjøres på et bredest mulig spekter av maskinvare. Random Access Memory (RAM) er er en viktig, men begrenset ressurs for en datamaskin. Holde programdata som er lagret i RAM er en av de raskeste måtene å forbedre responstiden på et program, men forbruker for mye system RAM gjør programmet en ressurs hog, en uønsket egenskap fra sluttbrukers synspunkt. Referansetelling virker til å balansere denne ved å holde data i RAM bare så lenge som det er nødvendig av programmet.

Teknikken med referansetelling fungerer ved å holde styr på antall og navn på objektene programmet bruker. Tenk på datamaskinens minne som et barns rom fylt med leker, og lagringsplass på harddisken som en kiste av leker i rommet. Referansetelling holder styr på den spesifikke "leker" (objekter) programmet (barn) er å spille med til enhver tid; med andre ord, antall objekter som for øyeblikket er på "gulvet". Så snart programmet slutter å spille med et bestemt objekt, tar referansetelling oppmerksom på dette, og skip objektet tilbake til lagring på harddisken, snarere enn å la det fortsette å spise opp plass i RAM.

Når det gjelder ytelser, den primære fordelen av referansetelling kommer fra umiddelbarhet. Den øyeblikkelige programmet er ferdig med et objekt, det setter det bort, frigjøre plass til andre objekter i programmet, og for andre programmer på datamaskinen. Fra et sluttbruker synspunkt, er dette en svært ren tilnærming; programmet aldri tar opp mer minne enn det krever en bestemt tid.

Ulempen med denne teknikken er økonomien. For referanse telling til å operere effektivt, må det benytte en permanent overvåkningsanordning for å styre antallet av gjenstander som benyttes på et gitt tidspunkt. Dette bruker en liten del av hukommelse og prosessorkapasitet, øker prosessor overhead fra programmet. Resultatet er at beslutningen om å bruke referansetelling blir en balansegang, avgjøre om programmereren ønsker å bevilge ekstra stress til CPU eller RAM.

  • Referansetelling kan brukes til å effektivisere minnehåndtering på en datamaskin harddisk.