#!/usr/bin/env python3 import gc import os import time from pympler import summary from pympler import muppy from concurrent.futures import ThreadPoolExecutor, as_completed def random_data(): time.sleep(1) return os.urandom(1024*1024) def gen_executor(): with ThreadPoolExecutor(1) as executor: futures = [executor.submit(random_data) for x in range(10)] for future in as_completed(futures): futures.remove(future) yield for cycle in gen_executor(): gc.collect() summary.print_(summary.summarize(muppy.get_objects()), limit=4)