Python性能分析指南(22)

发表于:2013-11-12来源:开源中国社区作者:袁不语点击数: 标签:性能测试
3 import pdb; pdb.set_trace() 想要看看哪里包含变量x的引用,执行objgraph.show_backref()函数: view source print ? 1 (pdb) import objgraph 2 (pdb) objgraph.show_backref([x], filename
3 import pdb; pdb.set_trace()
想要看看哪里包含变量x的引用,执行objgraph.show_backref()函数:
1 (pdb) import objgraph
2 (pdb) objgraph.show_backref([x], filename="/tmp/backrefs.png")
 

该命令的输出应该是一副PNG图像,保存在/tmp/backrefs.png,它看起来是像这样:

back refrences

最下面有红字的盒子是我们感兴趣的对象。我们可以看到,它被符号x引用了一次,被列表y引用了三次。如果是x引起了一个内存泄漏,我们可以使用这个方法,通过跟踪它的所有引用,来检查为什么它没有自动的被释放。

回顾一下,objgraph 使我们可以:

  • 显示占据python程序内存的头N个对象
  • 显示一段时间以后哪些对象被删除活增加了
  • 在我们的脚本中显示某个给定对象的所有引用

原文转自:http://www.oschina.net/translate/python-performance-analysis

...

热门标签