任何一个计算机程序都是放在内存之中去运行的,而当这个程序内有一个功能或者部分对象一直占用内存资源的而没有释放的话就会导致内存泄漏,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,转载请注明出处!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。