파이썬에서 기본 GC 생성 임계 값을 (700, 10, 10)으로 설정하는 이유는 무엇입니까? 그리고 후자의 두 숫자 10, 10은 너무 작습니까?파이썬에서 기본 GC 생성 임계 값을 (700, 10, 10)으로 설정하는 이유
이렇게 낮은 임계 값으로 인해 더 많은 콜렉션이 생성됩니까?
파이썬에서 기본 GC 생성 임계 값을 (700, 10, 10)으로 설정하는 이유는 무엇입니까? 그리고 후자의 두 숫자 10, 10은 너무 작습니까?파이썬에서 기본 GC 생성 임계 값을 (700, 10, 10)으로 설정하는 이유
이렇게 낮은 임계 값으로 인해 더 많은 콜렉션이 생성됩니까?
임계 값은 승산기 이전 세대- 상대적이다. gc.set_threshold()
documentation에서 :
실행시기를 결정하기 위해, 콜렉터는 마지막 컬렉션 숫자 객체 할당 및 할당 해제를 추적합니다. 할당 횟수에서 할당 해제 수를 뺀 숫자가
threshold0
을 초과하면 수집이 시작됩니다. 처음에는 세대0
만 검사합니다. 세대 이 생성1
이 확인 된 이후threshold1
번 이상 검사 된 경우 생성1
도 검사합니다. 마찬가지로threshold2
은 생성2
을 수집하기 전에 생성 의 콜렉션 수를 제어합니다.
대담한 강조 광산.
세대 1은 세대 0이 10 회 실행 된 경우에만 실행됩니다. 생성 0은 700 (델타 할당 - 할당 해제) 사이클마다 만 실행되므로 생성 1은 10 * 700 == 7.000 사이클마다 실행됨을 의미합니다. 2 세대는 10 * 10 * 700 == 70.000 사이클마다 실행됩니다.