#@+leo-ver=4-thin #@+node:edream.110203113231.735:@thin trace_gc.py """Trace changes to objects at idle time""" #@@language python #@@tabwidth -4 import leoGlobals as g import leoPlugins g.debugGC = True # Force debugging on. def printIdleRefs(tag,keywords): g.printGcRefs(verbose=False) gcCount = 0 def printIdleGC(tag,keywords): # Calling printGc is too expensive to do on every idle call. if g.app.killed: return # Work around a Tk bug. elif tag == "idle": global gcCount ; gcCount += 1 if (gcCount % 20) == 0: g.printGc(tag,onlyPrintChanges=True) else: g.printGc(tag,onlyPrintChanges=False) if not g.app.unitTesting: # Register the handlers... if 1: # Very effective. leoPlugins.registerHandler("idle", printIdleGC) else: # Very precise. leoPlugins.registerHandler("all", printIdleGC) if 0: # Another idea. leoPlugins.registerHandler("command2", printIdleRefs) __version__ = "1.3" g.plugin_signon(__name__) #@nonl #@-node:edream.110203113231.735:@thin trace_gc.py #@-leo