Innholdsfortegnelse:
Definisjon - Hva betyr Garbage Collection (GC)?
Garbage collection (GC) er en dynamisk tilnærming til automatisk minnestyring og tildeling av hauger som behandler og identifiserer døde minneblokker og omfordeler lagring for gjenbruk. Det primære formålet med søppelsamlingen er å redusere lekkasjer i minnet.
GC-implementering krever tre primære tilnærminger, som følger:
- Mark-and-sweep - I prosessen når minnet er tomt, lokaliserer GC alt tilgjengelig minne og gjenvinner deretter tilgjengelig minne.
- Referansetelling - Tildelte objekter inneholder en referansetelling av referansenummeret. Når minnetallet er null, er gjenstanden søppel og blir deretter ødelagt. Det frigjorte minnet går tilbake til minnebunken.
- Kopisamling - Det er to minnepartisjoner. Hvis den første partisjonen er full, lokaliserer GC alle tilgjengelige datastrukturer og kopierer dem til den andre partisjonen, og komprimerer minnet etter GC-prosessen og tillater kontinuerlig ledig minne.
Noen programmeringsspråk og plattformer med innebygd GC (f.eks. Java, Lisp, C # og .Net) selvstyrer minnelekkasjer, noe som gir mer effektiv programmering.
Techopedia forklarer Garbage Collection (GC)
Søppelinnsamlingens dynamiske tilnærming til automatisk tildeling av hauger adresserer vanlige og kostbare feil som ofte resulterer i virkelige programfeil når de ikke blir oppdaget.
Fordi de er vanskelige å identifisere og reparere, er tildelingsfeil kostbare. Dermed blir søppelinnsamling av mange ansett for å være en essensiell språkfunksjon som gjør programmererens jobb enklere med lavere manuell styring av haugetildeling. GC er imidlertid ikke perfekt, og følgende ulemper bør vurderes:
- Når du frigjør minne, bruker GC databeiseringsressurser.
- GC-prosessen er uforutsigbar, noe som resulterer i spredte sesjonsforsinkelser.
- Når ubrukte objektreferanser ikke kastes manuelt, forårsaker GC logiske minnelekkasjer.
- GC vet ikke alltid når de skal behandle i virtuelle minnemiljøer på moderne stasjonære datamaskiner.
- GC-prosessen samhandler dårlig med hurtigbuffer og virtuelle minnesystemer, noe som resulterer i vanskeligheter med å justere ytelsen.
