#!/usr/bin/env python from __future__ import print_function import tracemalloc import sys import gc import os import warnings import pprint def open_files(number, close=False): for i in range(number): fn = '__{}.tmp'.format(i) try: f = open(fn, 'wb', 0) if close: f.close() f = None finally: os.unlink(fn) gc.collect() def run(close): mem_before = tracemalloc.get_traced_memory()[1] open_files(number, close) mem_after = tracemalloc.get_traced_memory()[1] print('Memory peak grow: %+.1f kB' % ((mem_after - mem_before) / 1024)) if __name__ == '__main__': def noop(*args, **kw): pass warnings.showwarning = noop # "Warm up": create the warnings registry open_files(5) tracemalloc.start() try: number = int(sys.argv[1]) except (ValueError, IndexError): number = 100000 #print('Usage: ./memory.py 100000') #run(True) run(False) print("Warning filters:") pprint.pprint(warnings.filters)