Sto cercando documenti che descrivano in dettaglio come funziona la raccolta dei rifiuti di Python.
Sono interessato a cosa viene fatto in quale passaggio. Quali sono gli oggetti in queste 3 raccolte? Quali tipi di oggetti vengono eliminati in ogni passaggio? Quale algoritmo viene utilizzato per la ricerca dei cicli di riferimento?
Contesto: sto implementando alcune ricerche che devono terminare in breve tempo. Quando il garbage collector inizia a raccogliere la generazione più vecchia, è "molto" più lento che in altri casi. Ci è voluto più tempo di quanto sia previsto per le ricerche. Sto cercando di prevedere quando raccoglierà le generazioni più vecchie e quanto tempo ci vorrà.
È facile prevedere quando raccoglierà le generazioni più vecchie con get_count()
e get_threshold()
. Anche questo può essere manipolato set_threshold()
. Ma non vedo quanto sia facile decidere è meglio fare collect()
con la forza o aspettare la raccolta programmata.