Documentazione del Garbage Collector Python

| | | | | | | | | | |

Sto cercando documenti che descrivano in dettaglio come funziona la raccolta dei rifiuti python.

Sono interessato a cosa viene fatto in quale passaggio. Quali oggetti ci sono in queste 3 collezioni? Quali tipi di oggetti vengono eliminati in ogni passaggio? Quale algoritmo viene utilizzato per trovare i cicli di riferimento?

Sfondo: sto implementando alcune ricerche che devono terminare in un breve lasso di tempo. Quando il Garbage Collector inizia a raccogliere la generazione più vecchia, è "molto" più lento rispetto ad altri casi. Ci è voluto più tempo del previsto per le ricerche. Sto cercando di prevedere quando raccoglierà la generazione più vecchia e quanto tempo ci vorrà.

È facile prevedere quando raccoglierà la generazione più vecchia con get_count() e get_threshold(). Anche questo può essere manipolato con set_threshold(). Ma non vedo quanto sia facile decidere se è meglio fare collect() con la forza o aspettare la raccolta programmata.