import os import logging import shutil import requests import cachecontrol import psutil # logging.basicConfig(level=logging.DEBUG) us = psutil.Process(os.getpid()) MB = 1024 * 1024 N = 15 sess = cachecontrol.CacheControl(requests.Session()) total = 0 for i in range(N): url = 'http://localhost:8000/bigdata.bin?limit=%s' % i print('Requesting %s...' % i) response = sess.get(url, stream=True) fh = open('dest.bin', 'wb') shutil.copyfileobj(response.raw, fh) fh.close() used_mem = us.memory_full_info().uss / MB total += used_mem print('Using %d MB.' % round(used_mem)) import gc gc.collect() print('Done.') print('Using %d MB on program end.' % round(us.memory_full_info().uss / MB)) print('Mean memory use: %d MB' % round(total/N)) input()