gc — 가비지 컬렉터 제어¶
이 모듈은 힙 가비지 컬렉터에 대한 인터페이스를 제공합니다: 자동 수집 활성화 또는 비활성화, 즉시 수집 강제 실행, 할당 및 여유 힙 메모리 양 조회, 그리고 수집을 트리거하는 할당 임계값 조정.
함수¶
- gc.disable() None¶
자동 가비지 컬렉션을 비활성화합니다. 힙 메모리는 여전히 할당될 수 있으며,
gc.collect()를 사용하여 가비지 컬렉션을 수동으로 시작할 수 있습니다.
- gc.mem_alloc() int¶
Python 코드에 의해 할당된 힙 RAM의 바이트 수를 반환합니다.
CPython과의 차이점
이 함수는 MicroPython 확장 기능입니다.
- gc.mem_free() int¶
Python 코드가 할당할 수 있는 힙 RAM의 바이트 수를 반환하거나, 이 양을 알 수 없는 경우 -1을 반환합니다.
CPython과의 차이점
이 함수는 MicroPython 확장 기능입니다.
- gc.threshold(amount: int | None = None) int | None¶
추가 GC 할당 임계값을 설정하거나 조회합니다. 일반적으로 수집은 새 할당을 충족할 수 없을 때, 즉 메모리 부족(OOM) 상태에서만 트리거됩니다. 이 함수가 호출되면 OOM에 더하여 amount 바이트가 할당될 때마다(이전에 그러한 양의 바이트가 할당된 이후의 총합으로) 수집이 트리거됩니다. amount는 보통 전체 힙 크기보다 작게 지정되는데, 이는 힙이 소진되기 전에 수집을 더 일찍 트리거하고, 조기 수집이 과도한 메모리 단편화를 방지하기를 기대하기 위함입니다. 이는 휴리스틱한 방법으로, 그 효과는 애플리케이션마다 다르며 amount 매개변수의 최적값 또한 마찬가지입니다.
인수 없이 함수를 호출하면 임계값의 현재 값이 반환됩니다. 값이 -1이면 할당 임계값이 비활성화되었음을 의미합니다.
CPython과의 차이점
이 함수는 MicroPython 확장 기능입니다. CPython에는 유사한 함수인
set_threshold()가 있지만, GC 구현이 다르기 때문에 시그니처와 의미가 다릅니다.