Indholdsfortegnelse:
Definition - Hvad betyder affaldsopsamling (GC)?
Garbage collection (GC) er en dynamisk tilgang til automatisk hukommelsesadministration og tildeling af dynger, der behandler og identificerer døde hukommelsesblokke og omfordeler lagring til genbrug. Det primære formål med affaldsopsamling er at reducere hukommelseslækager.
GC-implementering kræver tre primære tilgange, som følger:
- Mark-and-sweep - I processen, når hukommelsen løber tør, lokaliserer GC al tilgængelig hukommelse og gendanner derefter den tilgængelige hukommelse.
- Henvisningstælling - Tildelte objekter indeholder et referencetælling af referencenummeret. Når hukommelsestællingen er nul, er genstanden skrald og ødelægges derefter. Den frigjorte hukommelse vender tilbage til hukommelsen.
- Kopisamling - Der er to hukommelsespartitioner. Hvis den første partition er fuld, lokaliserer GC alle tilgængelige datastrukturer og kopierer dem til den anden partition, hvorved hukommelsen komprimeres efter GC-processen og tillader kontinuerlig fri hukommelse.
Nogle programmeringssprog og platforme med indbygget GC (f.eks. Java, Lisp, C # og .Net) selvstyrer hukommelseslækager, hvilket giver mulighed for mere effektiv programmering.
Techopedia forklarer Garbage Collection (GC)
Affaldsopsamlingens dynamiske tilgang til automatisk tildeling af dynger adresserer almindelige og dyre fejl, der ofte resulterer i virkelige programfejl, når de ikke opdages.
Fordi de er vanskelige at identificere og reparere, er allokeringsfejl dyre. Derfor betragtes affaldsopsamling af mange for at være en vigtig sprogfunktion, der gør programmererens job lettere med lavere manuel styring af heapallokering. GC er imidlertid ikke perfekt, og følgende ulemper skal overvejes:
- Når der frigøres hukommelse, bruger GC computingressourcer.
- GC-processen er uforudsigelig, hvilket resulterer i spredte sessionforsinkelser.
- Når ubrugte objektreferencer ikke bortskaffes manuelt, forårsager GC logiske hukommelseslækager.
- GC ved ikke altid hvornår de skal behandles inden for virtuelle hukommelsesmiljøer på moderne desktopcomputere.
- GC-processen interagerer dårligt med cache og virtuelle hukommelsessystemer, hvilket resulterer i performance-tuning vanskeligheder.