# 使用方法 # 声明调用调试器: import pdb pdb.set_trace() # 运行时,可通过执行下述指令查看程序中前20个最普遍的对象: (pdb) import objgraph (pdb) objgraph.show_most_common_types() MyBigFatObject 20000 tuple 16938 function 4310 dict 2790 wrapper_descriptor 1181 builtin_function_or_method 934 weakref 764 list 634 method_descriptor 507 getset_descriptor 451 type 439 # 也可以查看两个时间点之间那些对象已经被添加或删除 (pdb) import objgraph (pdb) objgraph.show_growth() (pdb) objgraph.show_growth() # this only shows objects that has been added or deleted since last show_growth() call traceback 4 +2 KeyboardInterrupt 1 +1 frame 24 +1 list 667 +1 tuple 16969 +1 # 可以查看哪里包含给定对象的引用。 x = [1,2,3,4,5,6] y = [x, [x], {"a":x}] import pdb; pdb.set_trace() # 想查看程序对变量x的引用,执行objgraph.show_backref()函数: (pdb) import objgraph (pdb) objgraph.show_backref([x], filename="x_mem.png")