Sobes.tech
Junior — Middle

Πόσο διαρκεί η διαδικασία παύσης ολόκληρης της εφαρμογής κατά τη συλλογή απορριμμάτων;

sobes.tech AI

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

Στο Go (Golang), η συλλογή απορριμμάτων υλοποιείται με ελάχιστες διακοπές για την εφαρμογή. Ο σύγχρονος GC στο Go είναι ένας τριφασικός, ανταγωνιστικός συλλέκτης που προσπαθεί να ελαχιστοποιήσει τον χρόνο διακοπής (stop-the-world).

Ο τυπικός χρόνος διακοπής στο GC του Go μετριέται συνήθως σε μικροδευτερόλεπτα ή σε χαμηλά χιλιοστά του δευτερολέπτου, συχνά λιγότερο από 1 millisecond, ανάλογα με τον όγκο της διαθέσιμης μνήμης και το φορτίο. Αυτό επιτυγχάνεται επειδή το μεγαλύτερο μέρος της εργασίας συλλογής απορριμμάτων γίνεται παράλληλα με την εκτέλεση της εφαρμογής, και οι διακοπές χρειάζονται μόνο για σύντομες συγχρονίσεις.

Έτσι, ο χρόνος διακοπής ολόκληρης της εφαρμογής κατά τη διάρκεια της GC στο Go είναι πολύ σύντομος — συνήθως από μερικές εκατοντάδες μικροδευτερόλεπτα έως μερικά millisecond, κάτι που είναι πρακτικά αόρατο για τον χρήστη.