파이썬 다중 처리 라이브러리를 사용하는 동안 이상한 문제가 발생했습니다.파이썬 다중 처리 - 프로세스 완료시 메모리를 해제하는 방법?
내 코드는 아래 그림과 같습니다. 각 "기호, 날짜"튜플에 대한 프로세스가 생성됩니다. 그 결과를 나중에 결합합니다.
프로세스가 "심볼, 날짜"튜플을 계산할 때 메모리를 해제해야한다고 생각합니까? 명백하게 그것은 사실이 아니다. 나는 수십 개의 프로세스를 보았지만 (프로세스 풀을 크기 7로 설정 했음에도 불구하고) 시스템에서 일시 중단 된 ¹을 볼 수 있습니다. CPU를 소비하지 않으며 메모리를 해제하지 않습니다.
계산을 완료 한 후에 프로세스가 메모리를 해제하도록하려면 어떻게해야합니까?
감사합니다. "중단"나는 ps 명령 자신의 상태가로 표시됩니다 의미 "S +"
def do_one_symbol(symbol, all_date_strings):
pool = Pool(processes=7)
results = [];
for date in all_date_strings:
res = pool.apply_async(work, [symbol, date])
results.append(res);
gg = mm = ss = 0;
for res in results:
g, m, s = res.get()
gg += g;
mm += m;
ss += s;
이 내 스크립트의 근본 원인으로 인해 4GB의 메모리의 90 %가 소비되었다>에 노드 재부팅이 발생했다 :) 감사합니다! –