Sobes.tech
Junior

Τι είναι ο συλλέκτης απορριμμάτων (Garbage Collector);

sobes.tech AI

Απάντηση από AI

Μηχανισμός αυτόματης διαχείρισης μνήμης που απελευθερώνει άχρηστα αντικείμενα στη στοίβα.

Αρχές λειτουργίας:

  • Ανίχνευση προσβασιμότητας αντικειμένων: Παρακολουθεί τα αντικείμενα στα οποία αναφέρονται ζωντανά (προσβάσιμα) αντικείμενα από τις ρίζες (π.χ., την στοίβα των νημάτων).
  • Απελευθέρωση μη προσβάσιμων αντικειμένων: Τα αντικείμενα χωρίς αναφορές θεωρούνται "σκουπίδια" και η μνήμη τους μπορεί να επαναχρησιμοποιηθεί.

Τύποι συλλεκτών σκουπιδιών (ανάλογα με τη γλώσσα/πλατφόρμα):

  • Mark and Sweep: Σημαδεύει τα προσβάσιμα αντικείμενα (σηματοδότηση), στη συνέχεια διατρέχει τη στοίβα και απελευθερώνει τα μη σημαδεμένα (καθαρισμός). Μπορεί να προκαλέσει διαμόρφωση μνήμης.
  • Copying: Διαιρεί τη στοίβα σε δύο μέρη. Αντιγράφει ζωντανά αντικείμενα στο νέο μέρος, στη συνέχεια καθαρίζει το παλιό. Προλαμβάνει τη διαμόρφωση, αλλά απαιτεί περισσότερη μνήμη.
  • Γενεακός: Διαχωρίζει τα αντικείμενα κατά ηλικία σε γενιές. Συλλέγει σκουπίδια πιο συχνά στη "νέα" γενιά, όπου τα περισσότερα αντικείμενα δεν ζουν πολύ.

Πλεονεκτήματα:

  • Μειώνει την πιθανότητα διαρροών μνήμης.
  • Απλοποιεί την ανάπτυξη (δεν χρειάζεται να ελευθερώνεις ρητά τη μνήμη).

Μειονεκτήματα:

  • Μπορεί να προκαλέσει καθυστερήσεις (παύσεις) κατά τη συλλογή.
  • Ο χρόνος συλλογής είναι απρόβλεπτος.