Python에서 메모리 지우기
이 자습서에서는 프로그램 실행 중에 Python에서 메모리를 해제하거나 지우는 방법을 살펴 봅니다. 프로그램이 대용량 파일을 처리해야하는 경우 많은 양의 데이터를 처리하거나 데이터를 메모리에 보관해야합니다. 이러한 유형의 시나리오에서 프로그램은 종종 메모리가 부족할 수 있습니다.
프로그램의 메모리 부족을 방지하려면 프로그램에서 더 이상 필요하지 않은 변수 또는 데이터를 지워 메모리를 비우거나 지워야합니다. 다음 방법을 사용하여 Python에서 메모리를 지울 수 있습니다.
gc.collect()
메소드를 사용하여 Python에서 메모리 지우기
gc.collect(generation=2)
메소드는 Python에서 참조되지 않은 메모리를 지우거나 해제하는 데 사용됩니다. 참조되지 않은 메모리는 액세스 할 수없고 사용할 수없는 메모리입니다. 선택적 인수generation
은 값 범위가0
에서2
까지 인 정수입니다. gc.collect()
메소드를 사용하여 수집 할 객체 생성을 지정합니다.
Python에서 수명이 짧은 개체는0
세대에 저장되고 수명이 더 긴 개체는1
또는2
세대에 저장됩니다. 가비지 수집기가 유지 관리하는 목록은2
와 같은 기본generation
값을 사용하여gc.collect()
가 호출 될 때마다 지워집니다.
gc.collect()
메소드는 프로그램 실행 중에 메모리 사용량을 줄이고 참조되지 않은 메모리를 지우는 데 도움이 될 수 있습니다. 메모리의 액세스 할 수없는 데이터를 삭제하여 프로그램의 메모리 부족 및 충돌을 방지 할 수 있습니다.
del
문을 사용하여 Python에서 메모리 지우기
gc.collect()
메소드와 함께del
문은 Python의 프로그램 실행 중에 메모리를 지우는 데 매우 유용 할 수 있습니다. del
문은 Python에서 변수를 삭제하는 데 사용됩니다. 먼저 프로그램에 더 이상 필요하지 않은 큰 목록이나 배열 등과 같은 변수를 삭제할 수 있습니다.
아래 예제 코드는del
문을 사용하여 변수를 삭제하는 방법을 보여줍니다.
import numpy as np
a = np.array([1, 2, 3])
del a
변수를 삭제 한 후 사용하거나 액세스하려고한다고 가정합니다. 이 경우 프로그램은 액세스하려는 변수가 변수 네임 스페이스에 더 이상 존재하지 않기 때문에NameError
예외를 반환합니다.
예제 코드 :
import numpy as np
a = np.array([1, 2, 3])
del a
print(a)
출력:
NameError: name 'a' is not defined
del
문은 네임 스페이스에서 변수를 제거하지만 반드시 메모리에서 지워지는 것은 아닙니다. 따라서del
문을 사용하여 변수를 삭제 한 후gc.collect()
메서드를 사용하여 메모리에서 변수를 지울 수 있습니다.
아래 예제 코드는gc.collect()
메소드와 함께del
문을 사용하여 Python에서 메모리를 지우는 방법을 보여줍니다.
import numpy as np
import gc
a = np.array([1, 2, 3])
del a
gc.collect()