_gcdebug.py
branchstable
changeset 4870 101858d845f7
parent 4866 550e35a69b75
child 5421 8167de96c523
equal deleted inserted replaced
4868:e34cbd85d14d 4870:101858d845f7
    20             return cls
    20             return cls
    21     raise AssertionError()
    21     raise AssertionError()
    22 
    22 
    23 def gc_info(countclasses,
    23 def gc_info(countclasses,
    24             ignoreclasses=IGNORE_CLASSES,
    24             ignoreclasses=IGNORE_CLASSES,
    25             viewreferrersclasses=(), showobjs=False):
    25             viewreferrersclasses=(), showobjs=False, maxlevel=1):
    26     gc.collect()
    26     gc.collect()
    27     gc.collect()
    27     gc.collect()
    28     counters = {}
    28     counters = {}
    29     ocounters = {}
    29     ocounters = {}
    30     for obj in gc.get_objects():
    30     for obj in gc.get_objects():
    43             try:
    43             try:
    44                 ocounters[key] += 1
    44                 ocounters[key] += 1
    45             except KeyError:
    45             except KeyError:
    46                 ocounters[key] = 1
    46                 ocounters[key] = 1
    47         if isinstance(obj, viewreferrersclasses):
    47         if isinstance(obj, viewreferrersclasses):
    48             print '   ', obj, referrers(obj, showobjs)
    48             print '   ', obj, referrers(obj, showobjs, maxlevel)
    49     return counters, ocounters, gc.garbage
    49     return counters, ocounters, gc.garbage
    50 
    50 
    51 
    51 
    52 def referrers(obj, showobj=False, maxlevel=1):
    52 def referrers(obj, showobj=False, maxlevel=1):
    53     objreferrers = _referrers(obj, maxlevel)
    53     objreferrers = _referrers(obj, maxlevel)