Πίνακας περιεχομένων:
Ορισμός - Τι σημαίνει συλλογή σκουπιδιών (GC);
Η συλλογή σκουπιδιών (GC) είναι μια δυναμική προσέγγιση για την αυτόματη διαχείριση μνήμης και την κατανομή σωρού που επεξεργάζεται και εντοπίζει τα νεκρά μνήμη και ανακατανέμει την αποθήκευση για επαναχρησιμοποίηση. Ο πρωταρχικός σκοπός της συλλογής απορριμμάτων είναι η μείωση των διαρροών μνήμης.
Η εφαρμογή του GC απαιτεί τρεις κύριες προσεγγίσεις, ως εξής:
- Μαρκάρισμα και σάρωση - Κατά τη διάρκεια της λήξης της μνήμης, το GC εντοπίζει όλη την προσιτή μνήμη και κατόπιν ανακτά τη διαθέσιμη μνήμη.
- Καταμέτρηση αναφοράς - Τα κατανεμημένα αντικείμενα περιέχουν έναν αριθμό αναφοράς του αριθμού αναφοράς. Όταν ο αριθμός μνήμης είναι μηδέν, το αντικείμενο είναι σκουπίδια και στη συνέχεια καταστρέφεται. Η ελευθερωμένη μνήμη επιστρέφει στον σωρό μνήμης.
- Συλλογή αντιγράφων - Υπάρχουν δύο διαμερίσματα μνήμης. Εάν το πρώτο διαμέρισμα είναι γεμάτο, το GC εντοπίζει όλες τις προσπελάσιμες δομές δεδομένων και τις αντιγράφει στο δεύτερο διαμέρισμα, συμπυκνώνοντας τη μνήμη μετά τη διαδικασία GC και επιτρέποντας τη συνεχή ελεύθερη μνήμη.
Ορισμένες γλώσσες προγραμματισμού και πλατφόρμες με ενσωματωμένες GC (π.χ. Java, Lisp, C # και .Net) αυτοδιαχειρίζονται διαρροές μνήμης, επιτρέποντας έναν πιο αποτελεσματικό προγραμματισμό.
Η Techopedia εξηγεί τη συλλογή σκουπιδιών (GC)
Η δυναμική προσέγγιση της συλλογής σκουπιδιών για την αυτόματη κατανομή σωρού αντιμετωπίζει κοινά και δαπανηρά σφάλματα που συχνά οδηγούν σε ελαττώματα του πραγματικού κόσμου όταν δεν έχουν εντοπιστεί.
Επειδή είναι δύσκολο να εντοπιστούν και να επιδιορθωθούν, τα σφάλματα κατανομής είναι δαπανηρά. Έτσι, η συλλογή απορριμμάτων θεωρείται από πολλούς ως ένα χαρακτηριστικό γνώρισμα βασικής γλώσσας που διευκολύνει την εργασία του προγραμματιστή με χαμηλότερη διαχείριση κατανομής σωρευτικών σωρών. Ωστόσο, το GC δεν είναι τέλειο και θα πρέπει να ληφθούν υπόψη τα ακόλουθα μειονεκτήματα:
- Όταν απελευθερώνει μνήμη, η GC καταναλώνει πόρους υπολογιστών.
- Η διαδικασία GC είναι απρόβλεπτη, με αποτέλεσμα καθυστερημένες καθυστερήσεις στις συνεδρίες.
- Όταν δεν χρησιμοποιούνται αναφορές αντικειμένων που δεν χρησιμοποιούνται χειροκίνητα, το GC προκαλεί διαρροές λογικής μνήμης.
- Το GC δεν γνωρίζει πάντα πότε πρέπει να επεξεργαστεί μέσα σε περιβάλλοντα εικονικής μνήμης των σύγχρονων επιτραπέζιων υπολογιστών.
- Η διαδικασία GC αλληλεπιδρά ελάχιστα με την κρυφή μνήμη και τα συστήματα εικονικής μνήμης, με αποτέλεσμα δυσκολίες προσαρμογής της απόδοσης.
