파이썬 가비지 수집이 어떻게 작동하는지 자세히 설명하는 문서를 찾고 있습니다.
어느 단계에서 수행되는 작업에 관심이 있습니다. 이 3 개의 컬렉션에는 어떤 개체가 있습니까? 각 단계에서 어떤 종류의 개체가 삭제됩니까? 참조 사이클 찾기에 어떤 알고리즘이 사용됩니까?
배경 : 짧은 시간 안에 완료해야하는 일부 검색을 구현하고 있습니다. 가비지 수집기가 가장 오래된 세대를 수집하기 시작하면 다른 경우보다 “훨씬”느립니다. 검색보다 시간이 더 걸렸습니다. 나는 그것이 가장 오래된 세대를 모을 때와 얼마나 오래 걸릴지를 예측하는 방법을 찾고 있습니다.
함께 오래된 세대를 수집 할 때 예측하기가 용이 get_count()
하고 get_threshold()
. 또한로 조작 할 수 있습니다 set_threshold()
. 그러나 나는 collect()
강제 로 결정 하거나 예약 수집을 기다리는 것이 얼마나 쉬운 지 알지 못합니다 .
답변
파이썬이 가비지 수집 (소스 코드 자체 제외)을 수행하는 방법에 대한 결정적인 리소스는 없지만이 3 개의 링크는 꽤 좋은 아이디어를 제공해야합니다.
최신 정보
소스는 실제로 매우 유용합니다. C에서 얼마나 잘 읽는지에 달려 있지만 의견은 실제로 매우 유용합니다. collect()
기능으로 건너 뛰고 의견은 프로세스를 잘 설명합니다 (매우 기술적 인 용어 임에도 불구하고).