objgraph-定位python内存泄漏


objgraph是一个用于定位内存泄露的工具

>>> class Container:
...     def point(self, value):
...         self.point = value
...         
>>> container_one = Container()
>>> container_two = Container()
>>> container_one.point(container_two)
>>> container_two.point(container_one)

这里我们可以使用 objgraph 来可视化我们上述创建的对象(objgraph是一个用于定位内存泄露的工具),大家是否还得在虚拟环境下安装第三方库的方法:

# 在终端中进入虚拟环境
workon python-core-tech
# 安装第三方库
pip install objgraph
# 下面的库会帮助我们生成可视化图片
sudo apt install graphvi
>>> import objgraph
>>> objgraph.show_backrefs(container_one, max_depth=4, filename="container.png")
Graph written to /tmp/objgraph-o748tdfx.dot (31 nodes)
Image generated as container.png

这里可以看出来container_one和container_two存在循环引用