본문 바로가기
Python/Python FAQ

Python 파이썬에서 어떻게 명시적으로 메모리를 해제할 수 있을까요?, How can I explicitly free memory in Python?

by 베타코드 2023. 9. 12.
반응형

질문


나는 큰 입력 파일에 작용하는 파이썬 프로그램을 작성했습니다. 이 프로그램은 수백만 개의 삼각형을 나타내는 객체를 생성합니다. 알고리즘은 다음과 같습니다:

  1. 입력 파일을 읽습니다
  2. 파일을 처리하고 삼각형의 리스트를 생성합니다. 이 삼각형은 정점으로 표현됩니다
  3. OFF 형식으로 정점의 리스트 다음에 삼각형의 리스트를 출력합니다. 삼각형은 정점의 리스트 내의 인덱스로 나타냅니다

OFF의 요구사항으로 인해 삼각형의 리스트를 파일로 출력하기 전에 정점의 완전한 리스트를 출력해야 합니다. 그러나 리스트의 크기 때문에 메모리 오류가 발생합니다.

어떻게 하면 Python에게 일부 데이터가 더 이상 필요하지 않으며, 해제될 수 있다고 알릴 수 있을까요?


답변


Python 공식 문서에 따르면, Garbage Collector를 명시적으로 호출하여 참조되지 않는 메모리를 해제할 수 있습니다. 예시:

import gc

gc.collect()

del을 사용하여 버릴 대상을 표시한 후에 이 작업을 수행해야 합니다:

del my_array
del my_object
gc.collect()
반응형

댓글