Weak reference
examples/perf/weakmymem.py
import random import weakref def alloc(): a = { 'data': str(random.random()) + "a" * 10000000, } b = { 'data': str(random.random()) + "b" * 10000000, } #a['other'] = weakref.WeakKeyDictionary(b) z = weakref.ref(b) #a['other'] = #weakref.ref(a['other']) #b['other'] = a #weakref.ref(b['other'])
examples/perf/mem_weakref.py
import sys from weakmymem import alloc if len(sys.argv) < 2: exit(f"Usage: {sys.argv[0]} N") count = int(sys.argv[1]) for _ in range(count): alloc() input("End the script")