파이톤의ThereadPool Executor에 submit을 진행하면 메모리 소모가 많아집니다
5223 단어 Pythonthreadpoolexecutortech
컨디션
python 3.4
메모리 소모를 측정하기 위해 psutil을 설치합니다.
% pip3 install psutil
코드
그냥 Submit 이하만 하고 아무것도 안 해
job
.import time
import threading
from concurrent.futures import ThreadPoolExecutor
KB = 1024
MB = KB * 1024
def _print_memory_info():
import os, psutil
process = psutil.Process(os.getpid())
print("rss {} vms {}".format(process.memory_info().rss / MB, process.memory_info().vms / MB))
def job(t):
return t
_print_memory_info()
futures = []
with ThreadPoolExecutor(max_workers=2) as executor:
futures = [executor.submit(job, i) for i in range(100000)]
_print_memory_info()
result = [f.result() for f in futures]
_print_memory_info()
측량하다
range
의 값은 10만과 10만이다.range(10)
range(100000)
보다 메모리 소모가 더 많았다.이후
with ThreadPoolExecutor as executor
뽑아도 메모리가 열리지 않습니다.range(10)
의 경우% python3 trythread.py
rss 11.04296875 vms 49.8515625
rss 11.04296875 vms 193.859375
rss 11.078125 vms 195.9453125
range(100000)
의 경우% python3 trythread.py
rss 11.0390625 vms 49.8515625
rss 178.98046875 vms 348.0234375
rss 179.87890625 vms 351.078125
Reference
이 문제에 관하여(파이톤의ThereadPool Executor에 submit을 진행하면 메모리 소모가 많아집니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/miwarin/articles/c355b056cd0e5c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)