任何一个计算机程序都是放在内存之中去运行的,而当这个程序内有一个功能或者部分对象一直占用内存资源的而没有释放的话就会导致内存泄漏,python程序也会有这个问题。内存泄漏会造成数据损毁或者程序崩溃等后果,所以今天就来介绍几个python内存泄漏检测工具。

Python有哪些内存泄漏检测工具?Python内存泄漏怎么排查

1. objgraph

这些内存泄漏检测工具实际上来说也是可以通过python之中的pip去下载安装并且调用的库而已,而objgraph工具的话实际上是将python程序之中所有占用了内存的对象类型给打印出来。并且还会显示类型名称以及所占用的内存大小,代码示例如下:

# 所有
import objgraph
objgraph.show_most_common_types(limit=20)
function                   22750
dict                       15520
# 增长量
objgraph.show_growth(limit=10)
tuple                12332    +12332

二、pdb

这个工具的话也可以通过pip去下载安装,但是它的使用方式和在代码内直接调用方法不同。它是在命令行之中作为参数去调用一个python程序的,调用之后需要根据命令去查询出相应的数据。

命令执行完毕只有需要输入bt来将程序各个对象所使用的堆栈都给打印出来,用pp命令还可以让变量名也输出,示例如下:

.venv/bin/python -m pdb  orange.py

三、pympler

pympler这个python内存泄漏检测工具最重要的作用就是去查询使用内存最多的数据类型以及对象是什么,并且能够将实际占用的内存大小也给打印出来。而不是只输出对象的长度,示例如下:

from pympler import tracker
tr = tracker.SummaryTracker()
tr.print_diff()

以上就是关于“Python有哪些内存泄漏检测工具?Python内存泄漏怎么排查”的全部内容了,希望对你有所帮助。

更多python相关文章请访问分类:python

【版权声明】本文图文出自大盘站@dapan.cc,转载请注明出处!