Acasă Dezvoltare Ce este colectarea gunoiului (gc)? - definiție din techopedia

Ce este colectarea gunoiului (gc)? - definiție din techopedia

Cuprins:

Anonim

Definiție - Ce înseamnă Garbage Collection (GC)?

Colectarea gunoiului (GC) este o abordare dinamică a gestionării automate a memoriei și alocării de grădină care procesează și identifică blocurile de memorie moarte și realocă stocarea pentru reutilizare. Scopul principal al colectării gunoiului este de a reduce pierderile de memorie.

Implementarea GC necesită trei abordări principale, după cum urmează:

  • Marcare și îndepărtare - În proces când memoria se termină, GC localizează toată memoria accesibilă și apoi recuperează memoria disponibilă.
  • Număr de referință - obiectele alocate conțin un număr de referință al numărului de referință. Când numărul de memorie este zero, obiectul este gunoi și apoi este distrus. Memoria eliberată revine la grămada de memorie.
  • Colecția de copiere - Există două partiții de memorie. Dacă prima partiție este completă, GC localizează toate structurile de date accesibile și le copiază în a doua partiție, compactând memoria după procesul GC și permițând memoria liberă continuă.

Unele limbaje de programare și platforme cu GC încorporat (de exemplu, Java, Lisp, C # și. Net) autogestionează scurgeri de memorie, permițând o programare mai eficientă.

Techopedia explică colectarea gunoiului (GC)

Abordarea dinamică a colectării gunoiului în ceea ce privește alocarea automată a mormanului se referă la erori frecvente și costisitoare, care duc adesea la defecte ale programului din lumea reală atunci când sunt nedetectate.

Deoarece sunt dificil de identificat și de reparat, erorile de alocare sunt costisitoare. Astfel, colectarea gunoiului este considerată de mulți drept o caracteristică esențială a limbajului care face munca programatorului mai ușoară cu o gestionare mai mică a alocării mormanului. Cu toate acestea, GC nu este perfect și trebuie luate în considerare următoarele dezavantaje:

  • La eliberarea memoriei, GC consumă resurse de calcul.
  • Procesul GC este imprevizibil, rezultând întârzieri de sesiune împrăștiate.
  • Când referințele la obiecte neutilizate nu sunt eliminate manual, GC provoacă scurgeri de memorie logică.
  • GC nu știe întotdeauna când să proceseze în mediile de memorie virtuală ale computerelor desktop moderne.
  • Procesul GC interacționează prost cu sistemele de memorie cache și de memorie virtuală, ceea ce duce la dificultăți de reglare a performanței.
Această definiție a fost scrisă în contextul Programării generale
Ce este colectarea gunoiului (gc)? - definiție din techopedia