반응형
matplotlib 그림을 만든 후 어떻게 메모리를 해제 할 수 있습니까?
몇 가지 django-celery 작업에 여러 matlpotlib 함수가 포함되어 있습니다.
작업이 호출 될 때마다 더 많은 RAM이 파이썬 전용입니다. 오래지 않아 파이썬은 모든 RAM을 차지합니다.
질문 : 이 기억을 어떻게 해제 할 수 있습니까?
업데이트 2-두 번째 솔루션 :
메모리가 때하기 matplotlib 오류 갇혀에 대해 내가 특별히 비슷한 질문을하지만, 나는이 질문에 좋은 답변을 가지고 .clf()
, .close()
그리고 gc.collect()
당신이 누구의 메모리를 자동으로 해제됩니다 별도의 프로세스에서 플로팅 기능을 실행하는 멀티 프로세스 사용하는 경우 필요하지 않습니다 프로세스가 끝나면.
Matplotlib 오류로 인해 메모리 누수가 발생합니다. 그 메모리를 어떻게 확보 할 수 있습니까?
업데이트-해결책 :
이 stackoverflow 게시물은 다음 명령을 사용하여 matplotlib 객체에서 사용하는 메모리를 해제 할 수 있다고 제안했습니다.
.clf()
: 루프에서 플로팅 할 때 Matplotlib의 메모리 부족
.close()
: Python matplotlib : Figure 크기를 지정할 때 메모리가 해제되지 않음
import gc
gc.collect()
다음은 솔루션을 테스트하는 데 사용한 예입니다.
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
from pylab import import figure, savefig
import numpy as np
import gc
a = np.arange(1000000)
b = np.random.randn(1000000)
fig = plt.figure(num=1, dpi=100, facecolor='w', edgecolor='w')
fig.set_size_inches(10,7)
ax = fig.add_subplot(111)
ax.plot(a, b)
fig.clf()
plt.close()
del a, b
gc.collect()
셀러리와 상관없이 함수가 누출되지 않도록하기 위해 작업 함수를 여러 번 실행하려고 했습니까? django.settings.DEBUG가 False로 설정되어 있는지 확인하십시오 (연결 개체는 DEBUG = True 일 때 메모리에 모든 쿼리를 보유합니다).
반응형
'code' 카테고리의 다른 글
최신 Blink 포함 브라우저 (예 : Chrome, Opera)에서 이상한 스크롤 동작 (0) | 2020.12.26 |
---|---|
Motorola 장치 : ThreeTen에서 날짜 구문 분석시 org.threeten.bp.DateTimeException (0) | 2020.12.26 |
블렌더 : 구 주변 걷기 (0) | 2020.12.26 |
async / await로 추적 스택 (0) | 2020.12.26 |
변경된 파일 만 다시 컴파일하도록 Makefile을 만들려면 어떻게해야합니까? (0) | 2020.12.25 |